{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "c979f719-a7bd-4392-86f9-f699220b2c93",
   "metadata": {},
   "outputs": [],
   "source": [
    "# this is for working with census tracts and VTD precincts\n",
    "from shapely.geometry import Point, LineString, Polygon\n",
    "import shapely\n",
    "import geopandas as gpd\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "from numpy import random\n",
    "from scipy.stats import norm\n",
    "import math\n",
    "#tractGeomFile = gpd.read_file(\"state_map_files/fl_pl2020_t.shp\")  #Boo!  Only has geometries.  do not use\n",
    "tractPopFile = gpd.read_file(\"state_map_files/oh_pl2020_t.dbf\") #for Texas, need only this file"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "a8590a2a-0527-45ab-a4b3-fe0fdaa45be2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>STATEFP20</th>\n",
       "      <th>COUNTYFP20</th>\n",
       "      <th>TRACTCE20</th>\n",
       "      <th>GEOID20</th>\n",
       "      <th>NAME20</th>\n",
       "      <th>NAMELSAD20</th>\n",
       "      <th>MTFCC20</th>\n",
       "      <th>FUNCSTAT20</th>\n",
       "      <th>ALAND20</th>\n",
       "      <th>AWATER20</th>\n",
       "      <th>...</th>\n",
       "      <th>P0050002</th>\n",
       "      <th>P0050003</th>\n",
       "      <th>P0050004</th>\n",
       "      <th>P0050005</th>\n",
       "      <th>P0050006</th>\n",
       "      <th>P0050007</th>\n",
       "      <th>P0050008</th>\n",
       "      <th>P0050009</th>\n",
       "      <th>P0050010</th>\n",
       "      <th>geometry</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>39</td>\n",
       "      <td>153</td>\n",
       "      <td>533102</td>\n",
       "      <td>39153533102</td>\n",
       "      <td>5331.02</td>\n",
       "      <td>Census Tract</td>\n",
       "      <td>G5020</td>\n",
       "      <td>S</td>\n",
       "      <td>5924402</td>\n",
       "      <td>225599</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>POLYGON ((-81.44045 41.25459, -81.43934 41.254...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>39</td>\n",
       "      <td>153</td>\n",
       "      <td>533200</td>\n",
       "      <td>39153533200</td>\n",
       "      <td>5332</td>\n",
       "      <td>Census Tract</td>\n",
       "      <td>G5020</td>\n",
       "      <td>S</td>\n",
       "      <td>16548913</td>\n",
       "      <td>79769</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>POLYGON ((-81.44044 41.21441, -81.44044 41.217...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>39</td>\n",
       "      <td>029</td>\n",
       "      <td>951600</td>\n",
       "      <td>39029951600</td>\n",
       "      <td>9516</td>\n",
       "      <td>Census Tract</td>\n",
       "      <td>G5020</td>\n",
       "      <td>S</td>\n",
       "      <td>96544091</td>\n",
       "      <td>950949</td>\n",
       "      <td>...</td>\n",
       "      <td>150</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>146</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>POLYGON ((-80.63997 40.74541, -80.63996 40.745...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>39</td>\n",
       "      <td>093</td>\n",
       "      <td>097100</td>\n",
       "      <td>39093097100</td>\n",
       "      <td>971</td>\n",
       "      <td>Census Tract</td>\n",
       "      <td>G5020</td>\n",
       "      <td>S</td>\n",
       "      <td>154468293</td>\n",
       "      <td>927233</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>POLYGON ((-82.34128 41.18795, -82.34123 41.188...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>39</td>\n",
       "      <td>093</td>\n",
       "      <td>010200</td>\n",
       "      <td>39093010200</td>\n",
       "      <td>102</td>\n",
       "      <td>Census Tract</td>\n",
       "      <td>G5020</td>\n",
       "      <td>S</td>\n",
       "      <td>4337885</td>\n",
       "      <td>1552203</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>POLYGON ((-82.01893 41.49378, -82.01893 41.494...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 345 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "  STATEFP20 COUNTYFP20 TRACTCE20      GEOID20   NAME20    NAMELSAD20 MTFCC20  \\\n",
       "0        39        153    533102  39153533102  5331.02  Census Tract   G5020   \n",
       "1        39        153    533200  39153533200     5332  Census Tract   G5020   \n",
       "2        39        029    951600  39029951600     9516  Census Tract   G5020   \n",
       "3        39        093    097100  39093097100      971  Census Tract   G5020   \n",
       "4        39        093    010200  39093010200      102  Census Tract   G5020   \n",
       "\n",
       "  FUNCSTAT20    ALAND20  AWATER20  ... P0050002 P0050003 P0050004 P0050005  \\\n",
       "0          S    5924402    225599  ...        0        0        0        0   \n",
       "1          S   16548913     79769  ...        0        0        0        0   \n",
       "2          S   96544091    950949  ...      150        0        4      146   \n",
       "3          S  154468293    927233  ...        0        0        0        0   \n",
       "4          S    4337885   1552203  ...        0        0        0        0   \n",
       "\n",
       "  P0050006 P0050007 P0050008 P0050009 P0050010  \\\n",
       "0        0        4        0        0        4   \n",
       "1        0        1        0        0        1   \n",
       "2        0        2        0        0        2   \n",
       "3        0        0        0        0        0   \n",
       "4        0        0        0        0        0   \n",
       "\n",
       "                                            geometry  \n",
       "0  POLYGON ((-81.44045 41.25459, -81.43934 41.254...  \n",
       "1  POLYGON ((-81.44044 41.21441, -81.44044 41.217...  \n",
       "2  POLYGON ((-80.63997 40.74541, -80.63996 40.745...  \n",
       "3  POLYGON ((-82.34128 41.18795, -82.34123 41.188...  \n",
       "4  POLYGON ((-82.01893 41.49378, -82.01893 41.494...  \n",
       "\n",
       "[5 rows x 345 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tractPopFile.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "a7a90b04-4b48-4ab8-9195-8d953907c3fb",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "there are 3168 popn tracts for OH\n"
     ]
    }
   ],
   "source": [
    "# EXTRACT TRACT GEOMETRIES AND POPULATIONS INTO LISTS, COMPUTE TRACT AREAS\n",
    "# If the population and geometry data are in one file, this should work.\n",
    "STATE = \"OH\"\n",
    "tractGeom = tractPopFile['geometry']  #for some states, replace with tractGeomFile\n",
    "tractPop = tractPopFile['P0010001']\n",
    "tractVAP = tractPopFile['P0030001']   #NEW 3/2/22 - USE VAP\n",
    "# tractPop2 = tractPopFile['P0020001']   #not needed; confirmed that this matches P00100001 exactly\n",
    "tractHisp = tractPopFile['P0040002']   #NEW 3/2/22 - USE VAP\n",
    "tractBlack = tractPopFile['P0030004']  #NEW 3/2/22 - USE VAP\n",
    "nTracts = len(tractPop)\n",
    "print(\"there are {0} popn tracts for {1}\".format(nTracts, STATE) )\n",
    "tractArea = [0.]*nTracts\n",
    "for t in range (0,nTracts) :\n",
    "    tractArea[t] = tractGeom[t].area\n",
    "isSkippedTract = [0] *nTracts  #this will house a temporary list of tracts for manipulation\n",
    "tractPop = tractPop.to_numpy()  #to avoid panda overwrite grousing\n",
    "tractBlack= tractBlack.to_numpy()\n",
    "tractHisp = tractHisp.to_numpy()\n",
    "tractVAP = tractVAP.to_numpy()\n",
    "stateVAP = np.sum(tractVAP)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "c90b3908-e2e3-46b8-98e5-ae285eca1ee3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is Hispanic population by total population OH voter-age population\n",
      "state pop= 11799448 VAP pct Hispanic is  0.03649478548175945\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#What is our correlation of Hispanic pop to total pop?\n",
    "print(\"this is Hispanic population by total population \"+STATE,\"voter-age population\")\n",
    "print(\"state pop=\",np.sum(tractPop), \"VAP pct Hispanic is \",np.sum(tractHisp)/np.sum(tractVAP) )\n",
    "fig, ax = plt.subplots()\n",
    "ax.set(xlabel=\"tract Voter Age Population\", ylabel=\"tract Hispanic pop\")\n",
    "x = [0,10000]\n",
    "y = [0,10000]\n",
    "plt.plot(tractVAP, tractHisp, marker='.',linestyle=\"none\")\n",
    "plt.plot(x,y,linestyle = 'dashed')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "237df16d-af87-47ba-acb1-2ef5702c1406",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is voter-age Black population by total VAP OH\n",
      "total state pop= 11799448 pct Black is  0.11790450067020998\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#What is our correlation of Black pop to total pop?\n",
    "print(\"this is voter-age Black population by total VAP \"+STATE)\n",
    "print(\"total state pop=\",np.sum(tractPop), \"pct Black is \",np.sum(tractBlack)/np.sum(tractVAP) )\n",
    "fig, ax = plt.subplots()\n",
    "ax.set(xlabel=\"tract VAP\", ylabel=\"tract Black VAP\")\n",
    "x = [0,10000]\n",
    "y = [0,10000]\n",
    "plt.plot(tractVAP, tractBlack, marker='.',linestyle=\"none\")\n",
    "plt.plot(x,y,linestyle = 'dashed')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "10b208af-8eb0-45fa-9dc0-8873eb797200",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is a histogram of Census tract population for OH\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#for curiosity, let's plot the distribution of populations among tracts\n",
    "n_bins=50\n",
    "print(\"this is a histogram of Census tract population for \"+STATE)        \n",
    "fig, ax = plt.subplots(tight_layout=True)\n",
    "# We can set the number of bins with the *bins* keyword argument.\n",
    "ax.hist(tractPop, bins=n_bins)\n",
    "plt.show() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "4aac60d6-4cce-469b-b075-ad743acda38c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is population by Census tract for OH\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#What is our distribution of tract populations by area?\n",
    "print(\"this is population by Census tract for \"+STATE)  \n",
    "plt.plot(tractPop, tractArea, marker='.',linestyle=\"none\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "f159bf55-a25e-45c0-b7ea-4c21fbce9bb0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'shapely.geometry.polygon.Polygon'> <class 'shapely.geometry.polygon.Polygon'>\n"
     ]
    }
   ],
   "source": [
    "print( type(tractGeom[0]),type(tractGeom[1]) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "5e8f8f92-a336-43e5-8ac5-20c657cb5857",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "looking for nonPolygons in census tract data\n",
      "892 4625 0.00570439517799993 nonPolygon tract no, pop, area\n",
      "1877 4389 0.0006030292975000102 nonPolygon tract no, pop, area\n",
      "2762 1586 0.002926075715499933 nonPolygon tract no, pop, area\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAD4CAYAAAD//dEpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAZTUlEQVR4nO3dfXRV9Z3v8feXICYiKEjQYNTUx4syaktKaXFopIjYWh+K7dAr91bbLqZX7WjvchxtrXWmvfdau1y3a9UuHerDUKgP1V5Ha8WKKG2tYpsIIoggICog8iyCPIm/+0cONJFEfglJTgLv11pnnb1/e//2/u7Nj3yyzz7nJFJKSJK0J92KXYAkqWswMCRJWQwMSVIWA0OSlMXAkCRl6V7sAprSr1+/VFVVVewyJKnLqKurW51SKm/PfXTKwKiqqqK2trbYZUhSlxERr7f3PnxJSpKUxcCQJGUxMCRJWQwMSVIWA0OSlMXAkCRlMTAkSVkMDElqrffWwsZVsOP9xu2LnoIX7y9OTe2oU35wT5I6tTn/D37zTUg7/tY26CKoOA2m3wTbN9W3nXIhdO9RnBrbgYEhSbm2vAM3Hf23+YFfhIP6Qd3dMOfB+sdO5/1snwoLMDAkKd/6NxvPz/vt36aPGwFHVsMfb66f37yu4+rqIAaGJOU6YhDcsA5emw5vvwyrF8D8KbBpZf19i0VP1a936lgYfEkxK20XBoYktUS3bvVXE8eN+Fvblg2wdjGUHQo9+0OPg4pWXnvyXVKStLdKe8OA06FPVZNhccUVVzB06FA++clPcu+99/Lee+9x0UUXUVNTw4UXXsj69esBuOqqqxg6dChDhw7lpptu6tBDyGFgSFI7mjNnDnPnzmXGjBk89dRTXH/99UyYMIHq6mqmT5/O2LFj+clPfgLA5ZdfzowZM3j22Wd5+OGHWbRoUZGrbyw7MCKiJCJmRsSjhfkvR8TciPggIqo/ot+SiHgpImZFhH/kQtJ+ZcCAAfTo0YPt27fz7rvv0rdvXxYsWEB1df2PzSFDhvD0008DcMIJJwDQrVs3SkpKKCkpKVrdTWnJPYwrgXlA78L8HOBLwL9n9D0zpbS6hbVJUpfXp08fTjjhBE488UQ2bdrEL37xC5YvX87jjz/OyJEjeeyxx1i7dm2jPpMmTeK4446js/3l0awrjIioBL4A3LGzLaU0L6U0v70Kk6SuZsv2HfxxwSru/vNrrN64FYCpU6eybNkyFi5cyCuvvMJ3v/tdvv71r7NlyxbOPPNMli1bxoABA3Zt48knn2TixIncfvvtxTqMZuVeYfwUuAbo1Yp9JOCJiEjAv6eUJjS1UkSMB8YDHH300U2tIkmdytpN21iyZhN1S9bxzMLVzFi8hq3vfwDALU8s4OpRJ9J/xwf06dOHkpISevXqxbZt29ixYwe33norABMmTKCyshKA559/nu9///tMmTKFsrKyoh1Xc/YYGBFxLrAypVQXETWt2MewlNLyiOgPTI2IV1JKf/zwSoUgmQBQXV2dWrEfSeowj7y4nH+6d2ajtks+U8VnTyqnf68DuWnKK9z425c5+YiD6bZhM2eccQZbt27l29/+NkuWLOGyyy6jpKSEU089dddN72984xsAXHDBBQDccsstDB48uEOP66PkXGEMA86LiM8DpUDviJicUhqXs4OU0vLC88qIeAgYAuwWGJLUlZxc0Xu3tifmrmDD5u0MPe4w/veFf8fMN9fzfx6bx1vHj2P0+Ufw7c8dzykDDgFg+vTpu/WfM2dOe5e9VyKl/F/mC1cYV6eUzm3QNr3Qtts7oCKiJ9AtpfRuYXoq8G8ppcc/aj/V1dWpttY3VEnqGpat38zTr6zkuUVrmLF4DWs2bQOgsk8Znzi6D73LuvPwzOW8u/V9Rg7sz8VDj+Hvj+9H95K2+2RDRNSllJp9x2pbaPUnvSPiQuBnQDnwu4iYlVI6OyIGAHeklD4PHA48FBE793XPnsJCkrqaIw8tY9zQYxg39BhSSix4eyPPLVrNs4vW8MiLy7nh3JN55toRTHx2CXf/+TWenLeSfgcfyHmnDeDCjx/JoCN7U/g52am16Aqjo3iFIakrSymxcOVGbnh4Ls8tXsN3Rp7IoCN7c1z5wVQcWsr0+at46IVlPPXKSrbt+IDyXgfyyao+fOuzx3Fq5aGt2menvsKQJDX2xpr3uGXqfGqXrGPZ+s0AHHxgdyoOLeUbE+t/CT6sZw8+cUwfPnF0H8YMrmT5+s3MenM9U+a8xYbN7zP5m58q5iF8JANDktrIA3Vv8vCs5QB844yP8cmqPhxS1oNHZ9e3/UP1UexIiRdeX8fUl98GoFtA1WE92bL9A5a/s7lotecwMCSpjVwx4njWbNrGPc+/wZ3PvMadz7zWaPnFQ4/e9ZLTmo1bmfnGemYve4dX336X8l4H8s9nn1SEqvN5D0OS2tizi1az6t2t9OzRnYMOLKFnj+707dmDo/q239eeew9DkrqgzxzXr9gltAu/3lySlMXAkCRlMTAkSVkMDElSFgNDkpTFwJAkZTEwJElZDAxJUhYDQ5KUxcCQJGUxMCRJWQwMSVIWA0OSlMXAkCRlMTAkSVkMDElSFgNDkpTFwJAkZTEwJElZDAxJUhYDQ5KUxcCQJGUxMCRJWQwMSVIWA0OSlMXAkCRlMTAkSVmyAyMiSiJiZkQ8Wpj/ckTMjYgPIqL6I/qNjoj5EbEwIq5ti6IlSR2vJVcYVwLzGszPAb4E/LG5DhFRAvwcOAc4GfhqRJzcijolSUWWFRgRUQl8AbhjZ1tKaV5Kaf4eug4BFqaUFqeUtgH3Aee3tlhJUvHkXmH8FLgG+KCF2z8SeLPB/NJC224iYnxE1EZE7apVq1q4G0lSe9tjYETEucDKlFJdK7YfTbSlplZMKU1IKVWnlKrLy8tbsStJUnvKucIYBpwXEUuof0lpRERMztz+UuCoBvOVwPIWVShJ6hT2GBgppetSSpUppSpgLPBUSmlc5vb/CpwQER+LiB6F/o+0ulpJUtG0+nMYEXFhRCwFPg38LiJ+X2gfEBGPAaSU3geuAH5P/Tusfp1Smrv3ZUuSOlqk1OQthaKqrq5OtbW1xS5DkrqMiKhLKTX7mbi24Ce9JUlZDAxJUhYDQ5KUxcCQJGUxMCRJWQwMSVIWA0OSlMXAkCRlMTAkSVkMDElSFgNDkpTFwJAkZTEwJElZDAxJUhYDQ5KUxcCQJGUxMCRJWQwMSVIWA0OSlMXAkCRlMTAkSVkMDElSFgNDkpTFwJAkZTEwJElZDAxJUhYDQ5KUxcCQJGUxMCRJWQwMSVIWA0OSlMXAkCRlyQ6MiCiJiJkR8Whhvm9ETI2IVwvPfZrptyQiXoqIWRFR21aFS5I6VkuuMK4E5jWYvxaYllI6AZhWmG/OmSml01NK1a2oUZLUCWQFRkRUAl8A7mjQfD4wsTA9EbigTSuTJHUquVcYPwWuAT5o0HZ4SuktgMJz/2b6JuCJiKiLiPHN7SAixkdEbUTUrlq1KrMsSVJH2WNgRMS5wMqUUl0r9zEspfQJ4Bzg8ogY3tRKKaUJKaXqlFJ1eXl5K3clSWovOVcYw4DzImIJcB8wIiImA29HRAVA4XllU51TSssLzyuBh4AhbVC3JKmD7TEwUkrXpZQqU0pVwFjgqZTSOOAR4GuF1b4GPPzhvhHRMyJ67ZwGRgFz2qh2SVIH2pvPYdwEnBURrwJnFeaJiAER8VhhncOBZyLiReAvwO9SSo/vTcGSpOLo3pKVU0rTgemF6TXA55pYZznw+cL0YuC0vS1SklR8ftJbkpTFwJAkZTEwJElZDAxJUhYDQ5KUxcCQJGUxMCRJWQwMSVIWA0OSlMXAkCRlMTAkSVkMDElSFgNDkpTFwJAkZTEwJElZDAxJUhYDQ5KUxcCQJGUxMCRJWQwMSVIWA0OSlMXAkCRlMTAkSVkMDElSFgNDkpTFwJAkZTEwJElZDAxJUhYDQ5KUxcCQJGUxMCRJWbIDIyJKImJmRDxamO8bEVMj4tXCc59m+o2OiPkRsTAirm2rwiVJHaslVxhXAvMazF8LTEspnQBMK8w3EhElwM+Bc4CTga9GxMmtL1eSVCxZgRERlcAXgDsaNJ8PTCxMTwQuaKLrEGBhSmlxSmkbcF+hnySpi8m9wvgpcA3wQYO2w1NKbwEUnvs30e9I4M0G80sLbZKkLmaPgRER5wIrU0p1rdh+NNGWmtnP+IiojYjaVatWtWJXkqT2lHOFMQw4LyKWUP+S0oiImAy8HREVAIXnlU30XQoc1WC+Elje1E5SShNSStUppery8vIWHIIkqSPsMTBSStellCpTSlXAWOCplNI44BHga4XVvgY83ET3vwInRMTHIqJHof8jbVK5JKlD7c3nMG4CzoqIV4GzCvNExICIeAwgpfQ+cAXwe+rfYfXrlNLcvStZklQMkVKTtxSKqrq6OtXW1ha7DEnqMiKiLqVU3Z778JPekqQsBoYkKYuBIUnKYmDsx2bOnMmwYcMYPnw4I0aMYPHixdxzzz3U1NRQU1PDwIEDGTNmDAA7duzg6quvZuTIkdTU1PDyyy+zefNmzjrrLM444wyGDh3KlClTinxEktqTN733YytWrKBnz5706tWLxx57jHvvvZdJkybtWn7ZZZcxfPhwxo4dy2233UZJSQnjx4/ftXz79u0sW7aMqqoqVq9ezbBhw5g/f34xDkXa73nTW+3qiCOOoFevXgD06NGD7t2771q2fft2pkyZwvnn13/11wMPPMDrr7/OmWeeyRVXXMG2bds44IADqKqqAqC0tJRu3RxO0r7M/+H7oS2btnPPjTP4j395hknff467r5/O/7j0Kk7tcw4//9ZTLFuwjilTpjB8+HDKysoAWLZsGRUVFTz99NOUlpZy1113NdrmlVdeyTXXXFOMw5HUQQyM/czW97Zz///6C+tWvEfpwQdwWGUZtz3yA848+Sv0eK8fAEtmr2by5MmMGzduV7++ffsyevRoAEaPHs3s2bN3LfvhD39Inz59uPTSSzv2YCR1qO57XkX7gg2rNzP/+RXM/dNyNq3fylEn9+WcfxzEuP9+Mf/wXy+idMkpAJz0qSMYNLI/df9Sx3333berf01NDbW1tRx//PG7ngFuvfVWXn31VSZOnNjkfiXtO7zpvY+b//wKnrz75V3zR57Uh1NrKjn24+U8+OCDXHLJJVT0rv/hP6Dvx5j86zuZOuM/mTt3LrfccsuufuvWrePSSy9l/fr19O3bl0mTJrFp0yYqKir49Kc/vev+x7Rp0ygpKenYg5TUITe9DYx92JqlbzLvz7OomzKfiFIGnnEixw3+L/SrLGfH+x+w+s2NvPSHpby18B0Ajjj2EL74T6fRo9QLT6mr6YjA8CfDPiqlxP3/ei2bN7yzq232E48z+wno0ftSupXU/wn23v1K+cyY4xn4mQpKex5QrHIldQEGxj5q5ZLFjcJip4MO7cewsadx4EEH0/uwUg4/9hC6dWvq71xJUmMGxj5qwXN/ajR/7OAhnHPZ/6T04IOLVJGkrs7A2EcN/dJYjhp0Ggf1PoR+Rx9Dt27eiJa0dwyMfdQBpaVUnfrxYpchaR/iB/ckSVkMDElSFgNDkpTFwJAkZTEwJElZDAxJUhYDQ5KUxcCQJGUxMCRJWQwMSVIWA0OSlMXAkCRlMTAkSVkMDElSFgNDkpTFwJAkZdnjH1CKiFLgj8CBhfUfTCn9ICJOA24HDgaWABenlDY00X8J8C6wA3g/pVTdZtVLkjpMzhXGVmBESuk04HRgdEQMBe4Ark0p/R3wEPDPH7GNM1NKpxsWktR17TEwUr2NhdkDCo8EnET9lQfAVGBMu1QoSeoUsu5hRERJRMwCVgJTU0rPA3OA8wqrfBk4qpnuCXgiIuoiYvxH7GN8RNRGRO2qVauyD0CS1DGyAiOltCOldDpQCQyJiEHA14HLI6IO6AVsa6b7sJTSJ4BzCusPb2YfE1JK1Sml6vLy8pYehySpnbXoXVIppfXAdGB0SumVlNKolNJg4F5gUTN9lheeV1J/r2PI3hQsSSqOPQZGRJRHxKGF6TJgJPBKRPQvtHUDrqf+HVMf7tszInrtnAZGUf9SliSpi8m5wqgAno6I2cBfqb+H8Sjw1YhYALwCLAfuBoiIARHxWKHv4cAzEfEi8Bfgdymlx9v6ICRJ7S9SSsWuYTfV1dWptra22GVIUpcREXXt/dEFP+ktScpiYEiSshgYkqQsBoYkKYuBIUnKYmBIkrIYGJKkLAaGJCmLgSFJymJgSJKyGBiSpCz7RWCcffbZlJeX86Mf/QiAdevWMWrUKD772c8ybNgwZs+eDcA111xDTU0NNTU1VFRU8LOf/QyAUaNG7WovKyvjpZdeKtqxSFKx7BdfPrh06VKefPJJli5dyvXXX8+tt97KmjVr+MEPfsD06dO57bbbuP/++xv1OfXUU5kyZQpHHnnkrrYVK1YwcuRI5szxG9oldS5++WAbqaysbDQ/cOBANmzYAMDatWvp379/o+UvvPAC/fv3bxQWAPfccw9jx45t32IlqZPqXuwCimHw4MHccMMNDBo0iPXr1/PMM880Wj558mQuvvji3fr96le/4oEHHuioMiWpU9kvrjA+7Oabb2bMmDHMmTOHBx54gMsvv3zXsh07dvDwww8zZsyYRn3mzZtHWVkZxx57bEeXK0mdwj53hbH97ZV8sGkjacsWdmx4lx1r19DtkENIO3bsWielRL9+/QDo378/a9eu3bVs2rRpVFdX07t370bbnTRpUpNXHZK0v9inAuP1Sy7lvRkzdmu/YcVbTOu+hU0liTun3Mkjv3yEq8ZfxV133cXmzZv58Y9/vGvdyZMnM27cuEb9U0o8+OCDPPfcc+1+DJLUWe1TgdFUWAD82xEVVJ3Vjcer61+BK+tbxrRp05pc95e//OVubRHBggUL2q5QSeqC9qnAOOxb/8j2N96gR1UVWxcuonv//rz/9go2rnqLr1z5bb7Z9wgOKzuMfmX9il2qJHU5+1Rg9L/qqmKXIEn7rP3yXVKSpJYzMCRJWQwMSVIWA0OSlMXAkCRlMTAkSVkMDElSFgNDkpSlU/4BpYhYBbzehpvsB6xuw+21JWtrnc5cG3Tu+qytdTpzbQAnpZR6tecOOuUnvVNK5W25vYiobe+/RNVa1tY6nbk26Nz1WVvrdObaoL6+9t6HL0lJkrIYGJKkLPtLYEwodgEfwdpapzPXBp27Pmtrnc5cG3RAfZ3yprckqfPZX64wJEl7ycCQJGXpsoEREadHxIyImBURtREx5EPLj46IjRFxdTP9b4yIZYX+syLi8w2WXRcRCyNifkScXYTafhIRr0TE7Ih4KCIOLbRXRcTmBjXf3tLa2qi+vhExNSJeLTz3abCsXc5dRAxpcNwvRsSFzfS/v8F6SyJiVqF9r89dG9TW4WOuBbUVZcy1oL5ijLmzIqIuIl4qPI9opn8xxlxubW075lJKXfIBPAGcU5j+PDD9Q8t/AzwAXN1M/xubWgacDLwIHAh8DFgElHRwbaOA7oXpHwM/LkxXAXM6wbm7Gbi2MH1tg/ra7dwBBzU4JxXAyp3zH7GtW4Ab2urc7W1txRhzLaitKGOuBfUVY8x9HBhQmB4ELMvYVkeNuaza2nrMddkrDCABvQvThwDLdy6IiAuAxcDcVmz3fOC+lNLWlNJrwEJgyB76tGltKaUnUkrvF2ZnAJUt3H+71kf9OZpYmJ4IXNCgvV3OXUrpvQbnpLSwXrMiIoCvAPe2cP/tXlsTin7eijXmWnDuijHmZqaUdv7fmAuURsSBzW2kg8dci2prQuvO297+5lCsBzAQeAN4E1gGHFNo7wk8BxxMM+naIHmXALOBu4A+hfZbgXEN1rsTuKgja/vQtn67sx7qf2PZBMwE/gD8fZHO3foPza9r73NXWPYp6v9zbAQu3MN2hgO1Deb3+tztbW3FGHMtPW8dPeZacO6KMuYarHMR8GRnGnM5tbX1mOuUXw2yU0Q8CRzRxKLvAZ8DvpNS+k1EfIX6Ax4J/Cvwf1NKG+sDv1m3AT+kPsF/SP2l5NeBpjrt9ltPO9e2cx/fA94HflVoegs4OqW0JiIGA/8ZEaeklDYUo76mSm6ira3OHSml54FTImIgMDEipqSUtjRTy1dp/Jte1rlr59qKMeZadN6KMOZa+u+6226baGuzc1foewr1L9ON2kMtHTrmMmvbqzG3+xqt+G2hMzyAd/jb50gC2FCY/hP1iboEWA+sBa7Yw7aqKLzWCFwHXNdg2e+BT3d0bcDXqP9t/6CP2M90oLqjzx0wH6goTFcA89v73DWx3tPNHTv135H2NlDZlueuLWrr6DHXwvPW4WMut75ijTnqX5pbAAzbwzY6fMzl1taWY65F/+id6QHMA2oK058D6ppY50aaf1mlosH0d6h/PQ/gFBrfDFpMy2+i7W1to4GXgfIPtZfvrAU4lvpL1L5FOHc/ofENyJvb+9wVtrfz5ugx1L+W2+8jzt8f2vrc7W1txRhzLaitKGOuBfUVY8wdWtj2mIxtdPSYy6qtrcdci/7RO9MDOAOoKxz088DgJta5kQY/9IA7KCQ8MAl4ifrX9h750In9HvXvGphP4R0KHVzbQupfs5xVeNxeaB9D/Wu9LwIvAF8s0rk7DJgGvFp47ttgvXY5d8B/Kxz7rMKxX9BUbYX5/wC+9aHt7vW529vaijHmWlBbUcZcC+orxpi7nvp7ELMaPPp3kjGXVVtbjzm/GkSSlKUrv61WktSBDAxJUhYDQ5KUxcCQJGUxMCRJWQwMSVIWA0OSlOX/A7eYw8u1qL+dAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"looking for nonPolygons in census tract data\")\n",
    "notPoly = [0]*nTracts\n",
    "for m in range(nTracts):\n",
    "    if type(tractGeom[m]) != type(tractGeom[1]):  #assuming tract 1 is a single polygon\n",
    "        notPoly[m] = 1\n",
    "        print(m,tractPop[m], tractArea[m], \"nonPolygon tract no, pop, area\")\n",
    "        x = tractGeom[m].centroid.x\n",
    "        y = tractGeom[m].centroid.y\n",
    "        if y < 999 :  #let's zoom in on these\n",
    "            for geom in tractGeom[m].geoms :\n",
    "                xg,yg = geom.exterior.xy\n",
    "                plt.plot(xg,yg)\n",
    "            plt.text(x+0.0,y+0.01,m,fontsize=9)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "d63968a2-afc1-4913-863c-4c415fb9c0b8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#convex-hull these right away  (decision for each state.  For OH, YES!)\n",
    "for m in range(nTracts):\n",
    "    if notPoly[m] == 1:\n",
    "        for geom in tractGeom[m].geoms :\n",
    "            xg,yg = geom.exterior.xy\n",
    "            plt.plot(xg,yg)\n",
    "        tractGeom[m] = tractGeom[m].convex_hull\n",
    "        x,y = tractGeom[m].exterior.xy\n",
    "        plt.plot(x,y)\n",
    "        notPoly[m] = 0\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "72abde7f-085d-4c0a-abe3-29e8d6203b40",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>STATEFP20</th>\n",
       "      <th>COUNTYFP20</th>\n",
       "      <th>VTDST20</th>\n",
       "      <th>PRECINCT20</th>\n",
       "      <th>GEOID20</th>\n",
       "      <th>NAME20</th>\n",
       "      <th>G20PRERTRU</th>\n",
       "      <th>G20PREDBID</th>\n",
       "      <th>G20PRELJOR</th>\n",
       "      <th>G20PREGHAW</th>\n",
       "      <th>geometry</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>39</td>\n",
       "      <td>009</td>\n",
       "      <td>005ACR</td>\n",
       "      <td>ACR</td>\n",
       "      <td>39009005ACR</td>\n",
       "      <td>ATHENS 2-5</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>POLYGON ((-82.09632 39.32211, -82.09627 39.322...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>39</td>\n",
       "      <td>159</td>\n",
       "      <td>080ABZ</td>\n",
       "      <td>ABZ</td>\n",
       "      <td>39159080ABZ</td>\n",
       "      <td>MARYSVILLE 2</td>\n",
       "      <td>356</td>\n",
       "      <td>204</td>\n",
       "      <td>14</td>\n",
       "      <td>0</td>\n",
       "      <td>POLYGON ((-83.36722 40.25455, -83.36717 40.254...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>39</td>\n",
       "      <td>159</td>\n",
       "      <td>080ACC</td>\n",
       "      <td>ACC</td>\n",
       "      <td>39159080ACC</td>\n",
       "      <td>JEROME 6</td>\n",
       "      <td>414</td>\n",
       "      <td>341</td>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "      <td>POLYGON ((-83.23164 40.16109, -83.23154 40.161...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>39</td>\n",
       "      <td>159</td>\n",
       "      <td>080ACA</td>\n",
       "      <td>ACA</td>\n",
       "      <td>39159080ACA</td>\n",
       "      <td>MARYSVILLE 4</td>\n",
       "      <td>395</td>\n",
       "      <td>231</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>POLYGON ((-83.38459 40.21995, -83.38390 40.220...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>39</td>\n",
       "      <td>159</td>\n",
       "      <td>080ACB</td>\n",
       "      <td>ACB</td>\n",
       "      <td>39159080ACB</td>\n",
       "      <td>MARYSVILLE 15</td>\n",
       "      <td>444</td>\n",
       "      <td>283</td>\n",
       "      <td>10</td>\n",
       "      <td>1</td>\n",
       "      <td>POLYGON ((-83.39649 40.26222, -83.39638 40.262...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  STATEFP20 COUNTYFP20 VTDST20 PRECINCT20      GEOID20         NAME20  \\\n",
       "0        39        009  005ACR        ACR  39009005ACR     ATHENS 2-5   \n",
       "1        39        159  080ABZ        ABZ  39159080ABZ   MARYSVILLE 2   \n",
       "2        39        159  080ACC        ACC  39159080ACC       JEROME 6   \n",
       "3        39        159  080ACA        ACA  39159080ACA   MARYSVILLE 4   \n",
       "4        39        159  080ACB        ACB  39159080ACB  MARYSVILLE 15   \n",
       "\n",
       "   G20PRERTRU  G20PREDBID  G20PRELJOR  G20PREGHAW  \\\n",
       "0           6           7           0           0   \n",
       "1         356         204          14           0   \n",
       "2         414         341           6           1   \n",
       "3         395         231           4           3   \n",
       "4         444         283          10           1   \n",
       "\n",
       "                                            geometry  \n",
       "0  POLYGON ((-82.09632 39.32211, -82.09627 39.322...  \n",
       "1  POLYGON ((-83.36722 40.25455, -83.36717 40.254...  \n",
       "2  POLYGON ((-83.23164 40.16109, -83.23154 40.161...  \n",
       "3  POLYGON ((-83.38459 40.21995, -83.38390 40.220...  \n",
       "4  POLYGON ((-83.39649 40.26222, -83.39638 40.262...  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Now, let's read in the voting data  \n",
    "VTDdbf = gpd.read_file(\"state_map_files/oh_vest_20.dbf\")\n",
    "VTDdbf.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "3fe4ceba-8077-4485-ad0a-f8f2a5755040",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "8941 0.5407669764770272 5833999 = number of precincts, statewide GOP vote, total Trump+Biden votes\n"
     ]
    }
   ],
   "source": [
    "# Pull VTD geopandas data columns into arrays\n",
    "vtdGeom = VTDdbf['geometry'] \n",
    "# vtdGeom = VTDdbf['geometry'] #can't use VTDdbf because it uses alternate coordinate system\n",
    "vtdTrump = VTDdbf['G20PRERTRU']\n",
    "vtdBiden = VTDdbf['G20PREDBID']\n",
    "\n",
    "nPrecincts = len(vtdGeom)\n",
    "stateGOP = np.sum(vtdTrump)/(np.sum(vtdTrump) + np.sum(vtdBiden) ) \n",
    "print(nPrecincts, stateGOP, np.sum(vtdTrump) + np.sum(vtdBiden),\n",
    "      \"= number of precincts, statewide GOP vote, total Trump+Biden votes\" )\n",
    "vtdTrump = vtdTrump.to_numpy()  #these two lines try to avoid pandas complaints when we overwrite precinct data\n",
    "vtdBiden = vtdBiden.to_numpy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "c5c57f52-b8d2-4ef4-9d02-2429ed5e59da",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#see NJ code for convex-hulling tracts\n",
    "#ID the non-polygon PRECINCTS\n",
    "notPolyVTD = [0]*nPrecincts\n",
    "for p in range(nPrecincts):\n",
    "    if type(vtdGeom[p]) != type(vtdGeom[0]):\n",
    "        notPolyVTD[p] = 1\n",
    "        for geom in vtdGeom[p].geoms:    \n",
    "            xs, ys = geom.exterior.xy\n",
    "            plt.plot(xs,ys)\n",
    "        #plt.text(vtdGeom[p].centroid.x, vtdGeom[p].centroid.y,p)\n",
    "    else:\n",
    "        hi = \"hi\"\n",
    "        #x,y = vtdGeom[p].exterior.xy\n",
    "        #plt.plot(x,y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "ea498c6a-d054-409e-92fb-cda921e2911f",
   "metadata": {},
   "outputs": [],
   "source": [
    "#prep for geography triage\n",
    "isSkippedTract = [0]*nTracts\n",
    "isSkippedPrecinct = [0]*nPrecincts  #will be used later"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "5520a7c2-0560-421c-b5ef-bfd8aa9752b3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[96, 124, 307, 885, 886, 998, 1334, 1337, 1431, 1613, 2862]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# For potential later issues, identify and flag lakeshore low-population tracts.\n",
    "lakeTracts = [-99999]\n",
    "minTractPop = 20\n",
    "for m in range(nTracts):\n",
    "    if tractPop[m] < minTractPop:\n",
    "        x = tractGeom[m].centroid.x\n",
    "        y = tractGeom[m].centroid.y\n",
    "        x2,y2 = tractGeom[m].exterior.xy  #turn these two on to show state map\n",
    "        if y < 999 and x > -999 : #optional to exclude some areas from plotting\n",
    "            plt.plot(x2,y2,c=\"purple\")\n",
    "            plt.text(x, y,m, fontsize=9)\n",
    "        #plt.scatter(x,y)\n",
    "        if y > 41.:  #for Ohio, only worried about Lake Erie tracts\n",
    "            if lakeTracts == [-99999]:\n",
    "                lakeTracts = [m]\n",
    "                isSkippedTract[m] = 1\n",
    "            else:\n",
    "                if y > 9999:  #m==99940 or m==999909: \n",
    "                    thisTract = \"interior\"\n",
    "                else:\n",
    "                    lakeTracts.append(m)\n",
    "                    isSkippedTract[m] = 1\n",
    "\n",
    "print(lakeTracts)  # assigned as skipped tracts as well\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "0285a6d6-62f5-417b-b093-09fe3f67fc01",
   "metadata": {},
   "outputs": [],
   "source": [
    "#Let's skip only TRUE Lakeshore tracts - will exclude from map building\n",
    "isSkippedTract = [0]*nTracts   #start over -- don't skip the interior sparse tracts\n",
    "skips = [1431,1334,1337,307,1613,998]\n",
    "for s in range(len(skips)) :\n",
    "    isSkippedTract[skips[s]] = 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "dca817fc-8a1a-4037-bb00-3f0e2e871491",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "looking for tracts with zero area\n"
     ]
    }
   ],
   "source": [
    "# For potential later issues, identify and visualize zero-Area tracts.  See Ohio code for more code\n",
    "print(\"looking for tracts with zero area\")\n",
    "for m in range(nTracts):\n",
    "    if(tractArea[m] == 0):       \n",
    "        x = tractGeom[m].centroid.x\n",
    "        y = tractGeom[m].centroid.y\n",
    "        print( m,tractPop[m],\"(\",x,\",\",y,\")\" )\n",
    "        x2,y2 = tractGeom[m].exterior.xy\n",
    "        plt.plot(x2,y2,c=\"purple\")\n",
    "        #print(tractGeom[m])\n",
    "        plt.scatter(x, y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "3ded1b1f-5629-4d8f-826b-e037e5dcb3da",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "working on tract 200\n",
      "working on tract 400\n",
      "working on tract 600\n",
      "working on tract 800\n",
      "working on tract 1000\n",
      "working on tract 1200\n",
      "working on tract 1400\n",
      "working on tract 1600\n",
      "working on tract 1800\n",
      "working on tract 2000\n",
      "working on tract 2200\n",
      "working on tract 2400\n",
      "working on tract 2600\n",
      "working on tract 2800\n",
      "working on tract 3000\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#build basic OH map\n",
    "tractMAP = tractGeom[0] #uncomment for first time thru loop  **************\n",
    "for t in range(1,nTracts):\n",
    "    if t%200 == 0:\n",
    "        print(\"working on tract\",t)\n",
    "    if isSkippedTract[t] == 0:\n",
    "        uncomment = \"if-redone\"\n",
    "        tractMAP = tractMAP.union(tractGeom[t])  #uncomment to build map  ********\n",
    "x,y = tractMAP.exterior.xy\n",
    "plt.plot(x,y)\n",
    "pt1 = Point(-82.1,35.9)\n",
    "pt2 = Point(-81.5,35.9)\n",
    "pt3 = Point(-81.5,36.8)\n",
    "pt4 = Point(-83.0,36.8)\n",
    "clipPoly = Polygon([pt1,pt2,pt3,pt4])  #LEFTOVER FROM INDIANA. plan to clip off SW corner near Evansville\n",
    "xc,yc = clipPoly.exterior.xy\n",
    "#plt.plot(xc,yc)\n",
    "\n",
    "plt.show()\n",
    "wholeMAP = tractMAP  #in case we later slice parts out\n",
    "            "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "f33de347-5473-4b11-b3ae-86691b33098d",
   "metadata": {},
   "outputs": [],
   "source": [
    "#find all tracts and precincts centered in this clipPoly, flag for cutting\n",
    "# NOT USED FOR CO or OH - convex state.  If needed, COPY from another state\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "84c2cf09-b3ea-4fc2-a55b-62985882836b",
   "metadata": {},
   "outputs": [],
   "source": [
    "#rebuild tractMAP, excluding skipped / sliced tracts.  #NOT NEEDED FOR OHIO -- NO SLICED populous TRACTS\n",
    "counter = -1 #Watchout - low-number tracts may have been skipped\n",
    "found = \"no\"\n",
    "while found == \"no\":\n",
    "    counter +=1\n",
    "    if isSkippedTract[counter]==0:\n",
    "        starter = counter\n",
    "        found = \"yes\"\n",
    "\n",
    "tractMAP = tractGeom[starter]\n",
    "for t in range(starter+1,nTracts):\n",
    "    if t%50 == 0:\n",
    "        print(\"working on tract\",t)\n",
    "    if isSkippedTract[t] == 0:\n",
    "        tractMAP = tractMAP.union(tractGeom[t])\n",
    "\n",
    "if type(tractMAP) != type(tractGeom[1]):\n",
    "    for geom in tractMAP.geoms:\n",
    "        x,y = geom.exterior.xy\n",
    "        plt.plot(x,y)\n",
    "else:\n",
    "    x,y = tractMAP.exterior.xy\n",
    "    plt.plot(x,y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "4502cc9a-bf35-4f33-aa4c-4552e08980ed",
   "metadata": {},
   "outputs": [],
   "source": [
    "#for TN, let's convex_hull due to irregular river boundaries\n",
    "#tractMAP2 = tractMAP.convex_hull\n",
    "#x2,y2 = tractMAP2.exterior.xy\n",
    "#plt.plot(x2,y2)\n",
    "#plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "650cf37d-e11a-4ed3-861b-3f3edc411422",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#What is our distribution of precinct's Trump votes by precinct Biden votes?\n",
    "fig, ax = plt.subplots()\n",
    "ax.set(xlabel=\"Biden votes in this precinct\", ylabel=\"Trump precinct votes\")\n",
    "plt.plot(vtdBiden, vtdTrump, marker='.',linestyle=\"none\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "d40408f3-31eb-4b8a-ad91-4e2eb5f422df",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 0.46153846153846156 13\n",
      "100 0.7811579980372915 1019\n",
      "200 0.4866581956797967 787\n",
      "300 0.24539877300613497 163\n",
      "400 0.8549540347293156 979\n",
      "500 0.7272727272727273 462\n",
      "600 0.4948453608247423 873\n",
      "700 0.5201612903225806 248\n",
      "800 0.7922705314009661 828\n",
      "900 0.6556701030927835 485\n",
      "1000 0.05847953216374269 513\n",
      "1100 0.4766990291262136 1030\n",
      "1200 0.21052631578947367 418\n",
      "1300 0.7208121827411168 985\n",
      "1400 0.33419689119170987 386\n",
      "1500 0.22015503875968992 645\n",
      "1600 0.5294695481335953 1018\n",
      "1700 0.36397984886649876 794\n",
      "1800 0.636734693877551 735\n",
      "1900 0.5689828801611279 993\n",
      "2000 0.7350199733688415 751\n",
      "2100 0.5049180327868853 610\n",
      "2200 0.8631284916201117 716\n",
      "2300 0.7083333333333334 144\n",
      "2400 0.5334900117508813 851\n",
      "2500 0.7065217391304348 368\n",
      "2600 0.6688963210702341 299\n",
      "2700 0.8282374100719424 1112\n",
      "2800 0.7120141342756183 566\n",
      "2900 0.48854961832061067 524\n",
      "3000 0.3931888544891641 646\n",
      "3100 0.36129032258064514 620\n",
      "3200 0.5705645161290323 992\n",
      "3300 0.1597222222222222 576\n",
      "3400 0.7357630979498861 439\n",
      "3500 0.6796657381615598 359\n",
      "3600 0.5733333333333334 450\n",
      "3700 0.37551020408163266 735\n",
      "3800 0.22569444444444445 288\n",
      "3900 0.20665083135391923 842\n",
      "4000 0.03937007874015748 254\n",
      "4100 0.562 1000\n",
      "4200 0.5447916666666667 960\n",
      "4300 0.34776119402985073 670\n",
      "4400 0.6369485294117647 1088\n",
      "4500 0.5215782983970407 811\n",
      "4600 0.6427350427350428 585\n",
      "4700 0.6221374045801527 524\n",
      "4800 0.5081967213114754 793\n",
      "4900 0.13636363636363635 924\n",
      "5000 0.5202369200394866 1013\n",
      "5100 0.41761363636363635 704\n",
      "5200 0.5534924845269673 1131\n",
      "5300 0.546137339055794 932\n",
      "5400 0.4789473684210526 380\n",
      "5500 0.6520833333333333 480\n",
      "5600 0.6106612685560054 1482\n",
      "5700 0.8207885304659498 558\n",
      "5800 0.7358490566037735 795\n",
      "5900 0.7851239669421488 484\n",
      "6000 0.20052770448548812 379\n",
      "6100 0.5792079207920792 808\n",
      "6200 0.3378995433789954 657\n",
      "6300 0.6660808435852372 569\n",
      "6400 0.6738609112709832 417\n",
      "6500 0.43388429752066116 242\n",
      "6600 0.32398316970546986 713\n",
      "6700 0.09850374064837905 802\n",
      "6800 0.36101973684210525 1216\n",
      "6900 0.24847746650426308 821\n",
      "7000 0.3160250671441361 1117\n",
      "7100 0.56998556998557 693\n",
      "7200 0.35327868852459016 1220\n",
      "7300 0.07201309328968904 611\n",
      "7400 0.6833333333333333 420\n",
      "7500 0.8390977443609022 665\n",
      "7600 0.41793313069908816 658\n",
      "7700 0.7583815028901734 865\n",
      "7800 0.17824074074074073 432\n",
      "7900 0.7426636568848759 443\n",
      "8000 0.7367303609341825 471\n",
      "8100 0.7268656716417911 670\n",
      "8200 0.7226277372262774 548\n",
      "8300 0.5916870415647921 409\n",
      "8400 0.33170731707317075 205\n",
      "8500 0.6123693379790941 1148\n",
      "8600 0.6854545454545454 550\n",
      "8700 0.65807962529274 854\n",
      "8800 0.6643109540636042 566\n",
      "8900 0.7151515151515152 495\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD4CAYAAADiry33AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAABY1UlEQVR4nO29e5hU1ZWw/65zqrsVFYmtItjVFBo1mCAgBFMatRXjADoJ+Zjkl4mxiBqJ8ZKQTHTC900mZJLRjMlMSNRMRMXQJk4mE0biBbwhJShtFASCglcsuriKbfCGdHeds39/nKru6uq616mqU9X7fZ566nYu++zL2muvvfbaopRCo9FoNPWLUe0EaDQajaa8aEGv0Wg0dY4W9BqNRlPnaEGv0Wg0dY4W9BqNRlPn+KqdgHQcffTRKhAIVDsZGo1GUzOsX7/+LaXUMen+86SgDwQCrFu3rtrJ0Gg0mppBRLZn+k+bbjQajabO0YJeo9Fo6py8Bb2ImCKyQUQejH//qYi8JCJ/EZH7RGREhvOmi8jLIvKaiHzPpXRrNBqNJk8K0ei/BWxN+v4Y8Aml1GnAK8D81BNExARuA2YApwJ/LyKnFp9cjUaj0RRKXoJeRFqAi4A7E78ppR5VSsXiX58BWtKcOhV4TSm1TSnVA/we+FxpSdZoNBpNIeSr0S8EbgDsDP9fDqxI8/vxQDTp+474b4MQkbkisk5E1u3bty/PZGk0Go0mFzkFvYhcDLyplFqf4f//B8SA36X7O81vacNlKqUWKaWmKKWmHHNMWldQjUajqTuiHVHW3LSGaEc098FFko8f/VnAZ0VkJnAIMFxEfquU+oqIzAEuBqap9PGOdwD+pO8twK5SE63RaDT1QLQjSvu0dqweC7PRJLQyhD/oz31igeTU6JVS85VSLUqpAPAl4Im4kJ8O/CPwWaXUgQynPwecJCJjRaQxfv79LqVdo9FoappIOILVY6EshdVjEQlHynKfUvzobwWOAB4TkY0i8msAERktIssB4pO11wKP4Hjs/EEp9WKJadZoNJqqk9Pk0tEBN93kvGcg0BbAbDQRUzAbTQJtgbKkVby4w9SUKVOUDoGg0Wi8SLQjyqb2TWxcvBHbsgebXDo6oL0dFi8Gy4LGRli5EoLBjNeLhCME2gIlmW1EZL1Sakq6/zwZ60aj0Wi8SMKmHjsY63MrSZhc/EG/I+SnTYODByGhRPf0QDicUdD7g/6y2OWT0SEQNBrN0CQP00oqCZt6n++gMNDkEg47gj0h5EUcjb6tzcWEF47W6DUazZAi2hGlq/1BTrtrHkasFxoasmrcySRs6laPheEzmHjZRCaEJvRr5G1tjmDv6QGfDy67DEKhvK5dTrSg12g0Q4aE6eXCD5ch9Dg/9vQ4NvU8hLE/6Ce0MpTZph4MOvb4cNgR+lUW8Am0oNdoNEOGPtNLCeS0qQeDnhHwCbSNXqPR1AfZbO7x/05u7sJsNNlsTMTCRIlAU5NjXqljtEav0Whqm1zujAlPmJ4eRjY28rWF9/JK1zl0NV/EyK6tnjKxlAst6DUaTc0wyOc8H3fGhCeMZTnCvmsrI+cnoqrPci9xHR2es80n0IJ+iJJY9AEwITQBYNAEUyELOdxa9KHRZCJtXJh83BmTPWHK5eqYNGrItUCqGmhBPwSJdkRZct4SrG5nUmrDXRsQkQGr/IBBjWrFZj9Ll8Ls2TB3bv/11i9az/Jrl6MshdlUvsBMmqHNgLgw3RbhBWEunD2OkbncGSvhCZMyasjXXbNSaEE/BEn1PLB7bSegtILYwRib2jdxZOuRRLpH8YY9hrHd2/np97q4ZbUjvB99FFasgBtugBaiLL9mOXbM2arA6k5aJajRuEigLUCruRO//ToRO8C2xxV3rvHxtYX35ra1F+IJk80Ek+m/SowaSkAL+iFI36KPuEZvNBigcIS1gj/dsY/usz7Bf9mfwsLEtC0OWXNwwDWWLYNHHoF/n9OFbffvRyOmlC0wUznQJqfawc8OQtIOqgcLg3Z7Dju7W3mlq9mxuSe8bkrR2rOZYLL951H/+QRa0A9B/EE/c1bNGWCjf/TmTUSXrWcHLSyxvkJsdaJqCJYI76sjBl2nuxsiBBje5CPWHcMwDGbeOrNmBGalYoFrCiNd5xvtiBJb8BsCvb0INgpFgAg7bD/Dmoe5ZyPPZoLJZZ7xoP98Ai3ohyiJRR+JRrWbUUQYwxo+TQyT5M3BfD7Btp36nYxtw4mTRjAj5KwUHNY8jANdB4h2RGtCYKaLBV4L6a5XMkWFBGe+6LSDu2lVCkGwMYkQAAMOdB2A8FPu2MizmWA8bp7Jhhb0Q5hkjTZqtNJOCJVm98eLLoIZM+Cqq/qdGxJ0ddEnHGtNO06OW1LOWOCa3KxftJ6Hrn4IZfVXsOSNOEZ1R5iuViDYICaPmhexU7Xi6ys3nztCOJsJJhiEhQvp80jI137vAbSgH8Ika7RvWAmhPFjQ33+/I+ivvx5uvrn/d58PxjXvZc1Nr/BO5zs1px3njFuicZVMcjDaER0k5FOjQsaM7Zi2hQEogbO+dgrDW89LKjd/YTbybEI5kwmmowPmzXM6kzVrYPz4/Oz3HkAL+iFMoC2A4TOwLIsAEUwsbEMAx1STwLbh6qudun3iiXDXXTB6NMyZsZcX593pRPIzDQyfgY1dG9pxvKH729rwzz+72qmpaxYtcurM8887I0LThMsv74868JsFMYZbwzicD/rOGf3J0UxfOL2v82287WrUtatRVgxpamREaBZn5yugUylWKJdiv68yWtB7gSoN+fxBPxMvm8j629fjVzuYQzu9U87krCvGcfXVA23ylqUIh4WvtEUZN8vRgJNHBDY2p195Oke2HlmYdlyNZ/e49lVPLFoEX//6wN8sC379a+e/VonSau/gQ85hBiswcLzAkoU8wMi5s2D8quLqSmodK1Yo17D9Xgv6alOs0HFJQI6aNAoxBGUp/OxA1v8Pk6+4iB//w1j+780j+mz2JhbH7X+N9mlL+2za0xdOH2DjHhCXOx+qJXA9rn3VCx0d8KMfZf5/tB3lEtoxsbAweWfcp7jg3N6+ejTI+6YYr5Z0daxYoZzLfp/NdFRl+33egl5ETGAdsFMpdbGIfAFYAIwDpiql0m7yKiIR4D3AAmKZ9jSsO/It2GKEjksCMtoR5eF5D6PsftuoshQPXf0Qhs/gckaxidMAmMBfiIXtAXb4A10HSrNxV0vgpmvoHp5Iq0UWLWLQqDCVhLnQQKGwOPGYdzmy9TjARdfXdHVs/vzifd6zdTbZbPtVHkEWotF/C9gKDI9/fwH4P8DteZx7nlLqrQLTVrsUUrDFaBcuCchB26LFUZbCsi387MDPjr7fh4/+GG9ufnOAl0pJ+11WeribLMyTGzpUvSGWg0ouBkvO2s2b03topRIhgIUJxBAUb6/ewhNrtuA7xMeEORPcmdzPVMcq6fPugRFkXoJeRFqAi4B/Bb4DoJTaGv+vbImrWQop2GJW1LkkIJPdC8UQlK1QSmH6TBCwei2w6fOAOPOGMznzhjPdEx6VXE2YrvNNRDC86aaqN0S3yTf+ULbOIBH9d88eOO649DvidXQ4nlgPPOAI9oYG6O3NLeQBdnA8jzGN6TzieNMAouhbsZ3T9TWfUZgXVqx6wH6fr0a/ELgBGLw8MjcKeFREFHC7UmpRuoNEZC4wF6C1tbWI23iIQgu2UO3Cpcqb6l4I/REs2fwCkaXrGTbxZA6MGDVAELiqHVZKs8rW+XqgIRZCLvkW7cgv/lA68wg4deC5/Sdz/c9GDvC+uuMO+Id/gB3PRFHbIow5N8B//I+fnp7+Y7q7c6dfsAGFic2pbMXGRGH17YIkpjAhNIEJoQmZlYrUjnvhQmdRRyHukpUil/99Bcgp6EXkYuBNpdR6EWkr4h5nKaV2icixwGMi8pJSanXqQfEOYBHAlClT8tAHcpCrNZTTJlsuLSI1zS5cN9X00hfje95s/D09sCZhyqhxH/NswjxHeXkpHk4+VsFIODIg/hACO5/dyYPfeHBASOrUtQ+b2jex8e6NRLpHsYRPYTs6dt9lLAt+erNNiJWMoZPtv2tF+P+AQwt6htkTX+Ovm6IEVAS/sZPej32CAy9HGW7v511jBI0XXcgO/ASDWZSK5I67uxuuucYZRnjR9JbN/75C5KPRnwV8VkRmAocAw0Xkt0qpr+RzA6XUrvj7myJyHzAVGCToXSVXa6jE5IjbWkQlJ3Q8YFN0nVydb4byinZE+XHbSl7v9XNiw0r+KTytrMI+V6eSKt8WLHBeyUkPtAXwxeMPJUyrLy97GYANd25ATMHqtRAR53/TMZO8v+d9R/vvs50PNssqIIofHxa/4xJiRTjurdt8KJc3PoOKOSOJy+/8JPBJHmzv4id3n0bv/cIfHtjODX+7hZk3fCJ9fid33IbhZIhte7O+eqA95SwlpdR8YD5AXKP/br5CXkQOAwyl1HvxzxcC/1J0avMlV8Z6IOMLppJprjFTRt4U0fk+2N7F4p5LsDB5ssdiYvuLfKNMgj6Xp0m0I8qIzi4afKehlIFtw+OPO0picr+fbJJ7p/Md1t++vu8adsyGmPNZocCE0688nVGTRvHML54B+r1hYjiL545hL10cjY2BiYWfKNsIMIrdjGG7E9juVD8vv5zdyybBdtvPAyd+k9GHv8dXrzDxB0cC8HY7TO15mvfVMGbwMLuXxViyYj1zVs0ZLOyTO+7m5n6N2Yv11QPtqWg/ehH5PHALcAzwkIhsVEr9jYiMBu5USs0ERgL3xbUKH3CvUuphF9KdnVwZ64GML5hi0lyEecrRKGOcnE+M7yHAi3uOcTaRxsBC8eKeY9y/SbycujpHZPQ0SXQCse4YX5HniXzsb3jipeMzKrHJQes23r2xPyS1z0Ap1RduQCnF7ud3s+GuDc6+BDjhgOfQzq5Tp/HRk02aH2pne+8oIgQIEOEI3uNjHOAsOjCwsTAZd/HF7D35XX7xpwCdKntHqBQ8t+UI4AhWbITweGdfA/vudtqURSJsmUB2j5vkjnv8+PR13Qtusx6YEC5I0CulwkA4/vk+4L40x+wCZsY/bwMmlJrIgslnmF7tmfhCKTTNRZh6EsIk0j2K7cZYrr7tcmbFta2qUeWG+vHj9mFyLFZ88vDjx+0Djk97bFG2/KRyOs3XwEYzRCfHD/I0iYQjxLpjYDtC0f/yYt7wfZWI5e/r9xP3T0QRTaRjxi9n8Pxdz3PE6CM464azeHPzmyy/djm2ZYMNu57dNShZgabd/OBOk0g4wqoHLMYQZQxRMATi6y4SFnwhxus/+xPH250sNrZzq7qGZXnuxdrb6xTvp4mgYo5PvZ0UWi85H7Lmb7rRWrX819PV2SpPCNfvythcGVvtmfhiKCTNRZh6IuEIke5R/Ma+FMs2WX2tYlXl5436iTdU1d2Dbfp469bfO0vhK8jFoWY2Lv5d3EYf5eLQtLTHFb3AJ6mcDGDWlSPYPCBYl0OgLYBhGP2TrErxw8sjdLb6aWtzhH/7tHZiB2N96yLMRpMZt8zg4XkPY3Vb7DH3cNKMk5g8dzLHjj+W8IIw2x7f5rjQJmGNG8eBcy9kByMItPW7ORo+g4+c+BHe2uIsiUkIYwGOtvcQYgmmbXGOsZrzJcxaFaShwQmI99BDjlBPxecjnv4AO81WXrf9nODr5PyLDuXw4w4fsEq24PythonWA4uj0lG/gn6oU4SpJ9AWYLsRw7IdU0XMUuVrG/lo6uEw6mA3omywbbZc8yt24B+grZYbf9DPP4WnxTXJzBOxRce2TymntMG64umYedvMAb7x54QC+OOHrrkp4phnkvzVrB6L5+96HqvbctZI2Irl1yzn2PHH4g/6aVvQRueazr6RAsBejmHxa39H7BWDW5bAvQsbmTBnAh/s+YBXl7/KW1vTr3s8hVf6Vrlix7hl6m946PQWzg853jMJn/xtT0b5cGuENwiwAz9XXEH8fz/tEqIH4WlDcdkNBsGg04GuuWlNcdFRq2Gi9ej8nxb09UoR5il/0M/VtzWy+lpFzFI0Nkl52kaeWs/e5nEcpYz4cN7kpdhJvHXtcpSt3I95n6XjyWf1b9Gx7Qsop4Qmns58EWgLIKYMCGcBMHz0cPaYe/p+t227T0gmJm3DC8Jse2wbKHhFTqE3JoxWUU44GOGeq99mApsQQ/q2mkxHwlNHYWFj8Pw6Gza30xIKQdxVsnHzeh66Yzm7OBqTGMrXSCjkmAbDYejpNbAV9PQK4XD/KCUxmjDMNNFRc4UbrrSJ1qPzf1rQu4SXfK37KMI8NWvuSFZlmNdyjTy1nle6mnlF5hBQESIE2GeMBMvRTDNqdcXY9F0YbpcU276AcsrU6fiDfmbeOnNAXHejweDMG87kozM+6iygsm18Tb4BnVCyZm/1WJxoRnlDRfn73nswlQWW452jlBoo5MVZFZ/oQHbgp505TDn1fda/dARRuwVJKqNoR7RvXuBY3mIdR7BPHd13ueZm+hZn2bbzfVP7pj5TVNroqPmUW6VNtB6d/6s/QV+Fybt623u07G0jT60n0BZg9SFj2dHtxzAMzvxOkD/f8ufMWnM54owXQElxf/IkW/VOaPzJewH72YG/K0zLbeN5pas5bSeU2kmd0x7htdut/jgGgqNNK7tvBvaEz5zAqbNP5aFvPNQv7A0/I8+ZzO43NiEpZRQJR7BjjieNgc1MVrDPPpZl7cOJhTezrzOAYfixbSd08fa7XmLv8xv6OhfDZwyOjupRM0nGieFa8brxPFWaCEm2z8YOxtjUvqmmBX3ZyVPrSaclnzLrlMxac7EN36PD7WQSNu6774ZYLHP1HtDZJLWHkY2NjMyywjn5vHOAyJL+CdiJl01k1KRRzqRuXIC3LWjrOz55tJApdEFikxu7145P4tqcYETYv3gbq6xOxGcy1heiNwaX2u00PBejzwolMPGyiYPLuwbKDfDEBG19Cfoq9fDJOzWhYOPijYXHZh9q5DlsSBeiIWO+FtLwUzWsagy389TyEnLi4MF+JTuv6l1ke8hkhko3P5Bp3iDdqGHmrTOdTsGyMQwfZ5+8B/Pl7SgbwGL+325i5wt/Rb3e7zmE4ESzDKXx0k6UW3t75owrQ5kmX7aFPEy2Hhh51Jegr1IPn7xTEwpsy87f60LjHvkK7EwaViUbXwFaXkJO9FlSJE31TifUSmgPTojqp3BERL/wzjQ/kE9dTzYtbVy8EfvllxwhbzimmT8/uI9tVisB1YPf2IHZYDLxsom5laYlS5xnXLKkPx/zzd8CO4PkywbMKHOk3fH/Nw0mXj5xQCyhPuHvgZFHfQn6Kk6ETAhNYNOSTYV7XWjcJR+B7ZaGVYrGWEAakuWEafbvt9p3eLaOq5j2UEZTgz/od+z1lo2yFWIIYy8Yy95hY7l72RlYmJhYzJ/yOJcvHBznZpDTQ6Z8zCd/i3jO5MtaVoztjMJPFMuyWH/7ejbevbFP2eufr6v+BG19CXror+AdHU6c8QplbEleF9nIV5h4Yal3KVQy/W5oWKUKwwLSkFNOZBNqxYxUymxqSHZFNUyDj5zwEf68Z+yAUBPbCQw6L63TQ6Z8zCd/Mz1nlrrY1uZ0tpbluJQu4VLm0O5s0KOctQtA3+e+kb1eGVsGqjT54brXRSHDTw+uxsubSqffDQ2rVGFYYBqyygm3TQMlXi+Xq3FCKUqERX7+jufpNd+isSFEb8zGUDaN6zpon7Z7gAdb2kVp889On4/55G+658xRF4NBZ0R1++2glKAMH71TzsTctNTxKkrewMdDI/v6FPQemPxwhXyfw0PPW9R6gmqkv1QNyw3h6paW57ZpoITr5etq3GfCidkoS3E8nfz8yr/wzPNNNDy7lhZ7B1a38PC8hxl1+igmhCZkXpSWKR9z5W+658xjt7FQqH9aoLFRuGrhOFqY0z/3YNuICGdcd4Zn5unqU9B7YPLDFfJ9Do88b9HrCTyS/oLwgN11UHpcSkMigmmg7SsFC6pCQkH0eavZjhvn1EkWb931R+x4PAZlK3Y9u4tdz+5i490bmfzLOTAnxIlE4uEfihSi2TbwyaMupi96p+OyYo7nnVKKjp938JETP8KBrgODAs0lU4nFlvUp6L3WCIsl3+fwyPMWHe8lOf3Nzc574ncvU2W7azkoZfFftCPKO53vDApVkFgDAP2TyNGOKE/f/LSzLzGAgtdWvNYXKjkVq8fip9dEWK3OprHRz8pQwheoQHKZCfNsS+mKPjXwnG3ZLL9meV+cIQzwNfkG5OmyRXv51TWvMcZ+g0DT6rIttqxPQQ/10wjzfQ4PPG/R8V6gP+3xRhg1A0Qu/yGB0DmeGf5mpNYnwpNI7ay72h/EH97f/2wZnjW5gzB8BsP+9nw2MYFv3nwEDz7oLPICZ8HX73+5lxeuW9I/cQlYMYt3d72bMV3K8PG6HcAqdROpfMyERbSlhFYe/E6Qjp93oCyFmNIXChoAG2JJ+/d2dMCXrj2anti5mHyar3bfUza37PoV9JqKU7LnUbwRRq1RtFtfYtSvVxG7cwmNt11d8fDEeVPJieQKdCiJznpUd4QJbOK0uzaBbfVvwJ28k1PSsyZ3ENvVaNofCNJjmYOu390Nd/ziAFN7+4W8At6TEVx8xensWrerXzAaMHrKaEadPgpz0gRunufHLNW6VwYzYeooaOatM9m9YXdfxE8r5riS2oBtm7zfHACcooxZBgpxPI2MsWWbvNWCXuMqJXkexRth5OAJjFK7uJR7MGMW6trVMH6VN7XlYiaSqxR4LR/8QT9fW/hxjr72RxixHsRKWoq7dGnGZ00ezW2XsfTGjIz3eG7LMKbGfRQVYGGyzPg8FyCO2Sdu+jB9JtMXTu+rTyvH58i2fPK1DGbO1FHQqyte5dUHX8W2bcwGE2PK6fzpuVEcqg7QaQTo2uBn402OlbKxSejpVvhMuPrWU/u2VXQbLeg1g6haJM54Iwy0P0HsjjCm5cQ3V1bMu55ThWqIVQ68lg8ju7aCHRu8FHf2bFizhmj3MUTkRALNE/vs5H52cM2cd4kQwD98FE/cbMU3GAdTFJbqF/z7GMnjLXMIDtvElq2wiQnstv2sX7qmL/ImAhMvHxjfJqtFpZB8ddnMmTwKChAhcn8U224BnLmFo/grb5sTiFh+fCYsXgzHxaKcaET48XdOpnvESNraTIJsg5sWl2XEpgV9rePycH7AMNQnhGbsw39cb8pSzDISDOIPBmmc9HHUtWtQVgxpcskTpxymj0I1xFoIvJZ8L5/P2SLquONg/HiiC5fSfu2zWBaY854nNP4TzmKhadMY0dPDxMZGmPPvXGasZaM9HoCLPtfAj+6f2BeGGODpTj/PmP7EPuU0mjB24nAOPtrpCEsVYNSki/NPc6U6wjR1yB/087XrDuXon/0GsZwOrp057MAPCt5+dhtfppOHmc5hsQN8oIYxnYcxbYv3/v1JJl85kZbNJsybXbYRW96CXkRMYB2wUyl1sYh8AVgAjAOmKqXWZThvOvALwMTZNPwnJad6KJCPUHJ7ON/RQWTByviORM4S78iyDU7Mk8WLK6pVj5w7yzHXuCWYy2n6KERDLFZgV9KzKhh07PFLl8LEiXDLLX2xZCJz7sCyZeCeADw1QMgGiBBoGk5LdxTDMJg5YyajZ8BVV/UPEpTqn6AFmDkTPv7uWj7OEkwcYfnihsnA5PzSXImOMFMd6uig6d//FcOOIYDCIiARdoi/b77BxGImyxGl4pufK2c3rnjohE2GImQdjZ9oWTqqzIa0wXwL2Jr0/QXg/wCrM50Q7xxuA2YApwJ/LyKnFpHOoUWiQn3/+857R0f649JpMSXeM/D4HZh2LyLOZtgBIs7/iV2cK0kwCPPnu1Ph3cyrUkgI7B/9qPDOxs38SJAIFZJcxzo6nEnXlSvh5z93ZlAtC7q7Gf/8ElrNnYgp/Z5VCSFrGGAYjJh0ItMXTscwDZSteHjew8wYH+XXv3YGCIbhhBFI5rjj4MQ9azGJYcQDIfTVvXwoJl/TPXu23zPUoWj7Eyyz/pYYPiwEMUyavz6bUz57CuBMNjvC3cZAYYqNYUj/prsKLMsmwhjnu2m63lHlpdGLSAtwEfCvwHcAlFJb4/9lO3Uq8JpSalv82N8DnwO2FJ/kOiGbxp7vMNRNLSZ+T7/dSci4h8iULxDYcB/+3h3O/w0NtbGQKRNeWpTlAVdYILOGmlz/lHIkM4BtM2LdSkINjfzlyv+gOXRx3Ibud0YA11zjnDNvHgfm3NHnP55w05zbup/gbW082BWkuRmuu87RHxoa4OpJHRxx3R/iQhEMn48RoVmFPU8h+ZpFO8848stQhyIE6KSHduYQYBvNnz2Hif/5DZo7ory2/DWsXosP5DCOUB8ANr5DfExfOJ3dG3az8e6N2D0WpoorVSJOjIUq2egXAjcARxR4/eOBaNL3HcAZ6Q4UkbnAXIDW1tYCb1Nj5DIj5CuU3BzOJ93T37gP/8LZwOzBK11qFY8sKvMUmRSK1PqXMOM89hjYNkZvDxNb9zNgE5OuLqdTsO0+803CC6fV3Mlpd98EsV7GNzYyPl7fxyd50YwPhyEW61Ny40Hqs5PLvFmMMpVNycpQhwKhczDv3sbOHj97GscQuuGrgGO7nxOe0xfTx+5ViGkwfeF0Js91TFITQhOItK8msPgH+K3d0HiI09ZcJqegF5GLgTeVUutFpK3A66dT99NuL6yUWgQsApgyZUqGLYg9gBsTerk09kKEklvaYaZ7umEb94pw9Yom7RUyKRSZ6sKjjzrviU1ds1zLHzqfUKiFSDjC+M4HMe7oHVTfBxZHm2OySN44NrVdJNclyK4sFatM5VKy0tQhf9BPaNVX03qq+YN+Iu2rsXssZ35C4EDXgQH/+4OXQOiEsraTfDT6s4DPishM4BBguIj8Vin1lTzO3cHAlcotwK7Ck+kR3JrQy0djr4ZQcvuetR5Vs97JplCk1oWuLseEY9vOe1eX83uy8E25lp/4TlMdPlhyy6D6PtCNNwjf/jbcfLNzXaUGdiapdWnOnOzKUrHKVJEjv4zrRzo6CCz+Aab6EhYGpq+hf1FUtpg7LpNT0Cul5gPzAeIa/XfzFPIAzwEnichYYCfwJeDLRaXUC7jlwjVUzAjldnnz0mihVslXwLS1QVNT7pC+8+env0dKfU8bU2fEiPSdCQyuS5BdWUpSpmxfA2ufbWD/Nx4cuFtVpmd3U+iGw/hjb3ANtxDhBJov+7t451dZJahoP3oR+TxwC3AM8JCIbFRK/Y2IjMZxo5yplIqJyLXAIzjulYuVUi+6kvJq4OaE3lAwI5RzAlSPFipLOuUkR0jfQRp70n9pA+Cl60wSpNalUMh5Zero4+nd376M++76K53LPgDWs3HxRuaE51RuIeD+/c4kNu8ykY0w6RvO7xVcAAcFCnqlVBgIxz/fB9yX5phdwMyk78uB5aUksiJUafl0XVPO/KpwQ6koXh2ppConbW2Ov6RtO+9JgjlXFMx0AfCiQGTOHQSI4A+dz/rNjWxZcA+jJo6iaUQTJy+811m1m+8cUjDI5nCMztgTfT9ZvQVEVU1HIWXT0eG4pyYQ6R+lVNgLTK+MBVi0CK691hEaTU0VXT5d95Qrv4oJPeBF4ZmKF0YqheRV8gqoJHKFrE4OgDeseRgv3LycngcepUsdxeqmAGcM/4Cnb3Ymf7c9ug2AJxvNgrXxvg6l2wmiZjaUsOtToWUTDjsyJUGyf3yFlUYt6Ds6HP/fxDK97u760g7rlUIaSqnCs1KdREcHLFjg1EG71Hi8JaQh37xKCDLlrPDMFOQsU8jqhMBuP+83WN0xTMbxZX7Lqu7PsOV/B3tyWz0Wm9o3DRT0OcrGH/QzZ5Xj4ggMtNGnPneuMk4eRXZ3O2W1YEHm4xOmqO5uR8jfemv2Ce8yogV9aq+bznXMa9SKdlpu8m0opZh5KqVhJ+6TEPKGUZEh/aAAdoXkVZZRVb4hqx3N3+7bFDxKK0fRxXux9B7Wrz/8OnsXLXNMOM3NGcMmJ5Mzomq+ZZx43kQZPf44rFmT+XgPmXq1oG9rc3rbhEafbEfzIl4Y2tcCyZ1hKfbQSs0FJO6TEPIXXJBZW3Spo0+7u1EheZVDkOUTstrR/A2sbmex1Iccyl/s8ajI/gELbhILchoiL3PU169HGc5G3Nh26aOffMs48bwLFjhCPp/7esTUqwV9MAi33TbQRu/lpf71PAnpFuk6w2I1qwI7iaJDPKfeJ5uQd6Gjz7i70fyzC8urEgWZP+jnjG8FefrmNSgMnuFTJIfgEsBGiGHQgMUpvIJJDLGVc5xp9odRLrbdFtq5LVjgaPJeCKeRJ1rQA8ydy4D12F4WnF6K2eJV0nWGxQYDK2D4vX7RepZfsxzbtgftDerafVzq6MPhLLsbVVgL3b1xN/3C3dHdE9q8jbMxyZ4RpzDmg61st8Zi2T7EsJ3w1QsXOiPwUtptoSaWTMd72KRav4K+0Eyv4hAr2hF14l3E3cpyuYx5xe7nWdzuDPOoG9GOKMuvXY4dc5bwxz6MDZ44TJCpbuZTB116tra2PHY3qpDgOnX2qX2eNQDjLxnPzlc/4MF1x/Gh3cTOhgC/Xd5KC85o6e3miwa7WZZKoe0/9fhSRloVyOf6FPQ1ZMeOdkRZcu7dWL0WJjYz7vw2B752XfZNsT1i9/MsVegMI+FI/+5IcTbevXGwl0epddOlZ+u/jNDWZhJMJ+Qr1IYSAb62LN3CqbNP7fs+ZZD8S7b5zyr9xm4K2GJHWhXK5/oU9DVkx95+838T7F1NhAA7aOGh2IVw+2uYSyKFDf01Ayl3Z5giJAJtAcwmk9jBWJ/dwY7ZgxfnuFE3XXq2rJepcBuaPHdyn4DPK32l4raALXakVaF8rk9BXyt27I4Ogg/8P4Te+PZjob7tx2LdBazgy6aZ5LtTVbm0Xw/bLYsmjZDwB4OEVoackLSLN2Jbdnr/8Vqpm7WSzmJxW8AWO9KqUD7Xp6CvFTt2OIyhLAQV335sOxE1lla2M8bejm//abmvkU0zyUdrKefQsVomtHJ1LonrdnamFRIJd8IJoQmZPW9y1U2vdIxeaUPp8sONPMoSvqFoihmCVCqflVKee02ePFkNCdauVerQQ5VtmCrW0KTunnWfmiX3qQ9pUr2YqqfhUOeYbNx4o1KmqRQ47zfemN9/hRxTLOW69tq1zrXS5U08T5VpOu+58q+Qeyau29ioVFOT87mpSamrrnLnPuVKe62SLj/cyqO1a51yFHHevZDX2ep1HgDrVAaZWsiesRq3iffm8uMfYT65ilNumMV4cyu++O6TPiuuLWYjMfQzzcwR/9L9V8gxxVKOa+faTzfdkNwNkq9rWXDZZXDllc7y/zvuyL63bzH3cDPttULqXq3p8sOtPEoXvqGa5LtPdJHUp+mmlkga7gWBw29rQ13biLJ6HD/hXMIx29Avn2FhOYeO5bh2LttquWye6cLkJoSFW3beStvFvWImSqQl1cyXKT/cyCOPzUHsb1/GkQe7EVWeGEdDV9B7rZLH0zJ+bhDGFygcs9kG87EbltO9we1r52qg5eq4Ml3XbX/9StnFvTZ/kmmRW7r8SPzW3NyviXvVNp4H0Y4oKxfv5xJlYKAQXwOG2x1PJptONV9lt9F7yRbqpbR4ndtvV+rCC5W64YaSbJmuksuuWqLdtWyUc25GqfTPna2uF9oO6qjdrL5xtfqh+UN1J1eox2Wa2nDVr4q6Dlls9ENTo/eSn72X0uJVOjqcvUSXLXO+P/oo3H67N/Ip24jFywv3ymm6yPTcmezrCa26EA27jtpNIqTzzp5W9jSOJRS62PV7DE1BX037XOrQ1WO2Qs+REBoffjjw96VLnRhFpVy33MN2LwujcpouMj13al1vbs5vz9l01FG7yTekcykMTUGfqZKXu/Fn0nQ8Yiv0HMkbcaQye3Zp162Epu11YZTP/EkxbSLTc6fW9VI6wnTtxkvzbgWST0jnkshk00l94WzuvQF4MP79KOAx4NX4+0cynBcBNgMbyWJDSn5VxY8+X5tfKTbXcttF64lEeRiGk1+GoZTPp9TUqY6tvhQqVQ5r1zo+9m752VeaUuzg+bSTlHUke26/rzpprROyyddCNPpvAVuB4fHv3wNWKqV+IiLfi3//xwznnqeUequAe1WefLSLUjVBr2t4XiJRHvlsxFEolSiH1LoSCrl/j3JTqsadh7fX3oX3suWaX/GGNYbd814kNH5ycZqtV81kHhll5LVgSkRagIuAO5N+/hywJP55Ca6Ek6sQqQszIL/FPaUu1kgMN3/0I3fMBemeo15ILo+mJveEPLhfDumoh8VP5VxMF+eVrmbW2GcRtVuwumNEwpHiLlSBtBZMmRdBFUK+Gv1C4AbgiKTfRiqldgMopXaLyLEZzlXAoyKigNuVUovSHSQic4G5AK2trXkmqwgyaeX52Mrd0ATd8isvh53ZI9oHUP65i7KGRqQ+Rm8VmD8KNL+PafdiYWDaNoH9m4CzC79QMOhsQrJ0qTN/U+36C94aZWSy6ah+G/vFwK/in9vot9HvTznurxnOHx1/PxbYBJyT655ltdGXap/1il+023Zmr9k4vZLPpVAPz1BubrxRdUqrWs2nVSctzjxMMfnltfpbhTRRoo3+LOCzIjITOAQYLiK/BfaKyCjlaPOjgDczdCS74u9vish9wFRgdTGdkiuUqmmVWxPMF7c1Ri9pH172Py8Er9QVL9PWht/3A/y9nc532yiu7nmp/ibwkEddThu9Umq+UqpFKRUAvgQ8oZT6CnA/MCd+2BzgT6nnishhInJE4jNwIfCCS2kvjkrYZyuB28/hJRtnPdi36xW354WCQbj1VidUsGE48zHF1D0v1d9kgsHi9yt2EXE0/jwPFmkDvquUulhEmoE/AK1AJ/AFpdTbIjIauFMpNVNETgDui5/uA+5VSv1rrvtMmTJFrVu3rrAnqRZesmuXileepV40evBOnrpBrnIp5VndyKdayOsyplFE1iulpqT9M5NNp5qvmolH70W7YCZqzV7shfSWmoZaqh/5kG1eqN6etRyUOY/QsW7KRKl2wUppILWoIWeyb9dSnnnRblwK2eaF6u1ZCyW5XkL+ETorlEda0JdCouJ3d4OIE7sjXyopfOulEdZanrW1OTZj23bevWI3huI6zGyTi/XgTlosyfXS5+vfzCS1jpYiL0pE7zCVTKETTQnf3URjnjcv/3OTBUl3t7MgqFwLKrw6UVUopUzSFlq2iTwzDOdVbKMUGfjuBUpZyJNpcrEQ54B6W+iXWi97e9PX0VLkRalksulU8+XpWDepFOvPni6WSzltm+W2eWeKP+7mPZPKKNZ0qFpy1dr8Ll1s2d5+u+PXXUzZrF3rxM5PlK+XYhtVM+ZSrdnyC4jZ07eHcGNj5ucrY96jbfR5UOxQvdgha0IDWrAAHnvM6eG7u8tnVimnT3c6kwq4b2aJ59n29jBzFrfx1B1BGpfkceliy7aryxmG2wVu75bIj+7u/lg9XhpJVdPMUktmxHxNhakmLchsFqtS3mtBn6BUgV3MBGEw6CzXfvRR57ttV9Ru5xqZTCrlaNDBIPeGgzwVU1g29HQrwmHJfuliy7bY88oZkM0N8qmz5Zr0riVbfiGdUqoile24Kiyi0oI+QakCu9gC6+pyhEFCKHR1FXedapKp8ZapQY9r3othH4WNgWHbjGt+GxiZ+YRiy7bY81Lzw0tCPkG2OlvOSW8PrRbNSaZ6XWonWIUV01rQJ1ONJettbc5qwFrQcDKRqfGWSWsMbPhffi+Ps0q1cdA4jOauk8gq6BNprFSjrCVhlo5ym1dqJTREunKsRVdltKCvPrUuFBIU2niLbTAdHZx293c4TXXzt9zP73yXE2j7TPHpTqTF7fyvFWGWjloyr5Sb1HKspTmGJLSg9wK1LBQykUuQF9tgwmGMWC+gQGxmXT6C94A1N60h0BYAKGzvzRrV0MpKvSgf5aBGO0Et6DXlIZcgL7DBRDuiRMIRhu9v5V05h4DxOv6mfXRPCtI+rR2rx0JE+t3JmnyEVoZyC/sa1dDKTj0qH26QzsPmpps83yFqQa8pD7kEeQFaY7QjSvu0dmLdMbBB5FxM37mEFk4l0nU4Vo+FshSK/gB9sQ9jrL15LaOnjs6u6deohqYpALdNc4lOMJ/RoEcCrWlBX04Shdzc7HjTFFLYHqkgRZOPIM9Ta4yEI1g9FtjOd6UgFoNNGywmhAKYjSaxgzFICcT60rKXeOn+lzB9JgjYMRuz0Ryo6WszRX1TTtNcrtGgh8yCQ1vQFytM8zkv3aKZpqb8CruGNIWslDj8TzziuOaTMRtX92n0APvVcBYvihGa1EhoZYhN7Zu4/659bOttJUAEPzucA22weq2+TiAW35d0gFZfD2aKWqgP1aCcprlco0EPmQWHrqBftAiuvdYphHwFMOTfSycvmoHCVleWS1PIJ8KeRxj4iCO5d+HXaO56hdcefo3I6ijDeY9T7Rf55tdP5+9vaGVWyM89d9v0CBjK4qtyDy0qCgYYhoEdS5QDDGse1nefhO0/78nbEijbvSqlOdZiZ1JO01yu0aCHzIJDU9B3dMA11zjjfygs9EC+vXRypLp0y+CzNZpyaArJwsA0nSBbsVjVh5SZSH3Ejg1NXNwKw44aBigMQGExhu3cfHMrr7wCvTEDW4EYgnHBeVw8+20OdB3gnc53eH7R83TaxxORAMduMJlMv+3f6rEGm3SKJJMwL8e9+qiE5ughM0RBuGGay9ZWM40GE+csXFi42bYMDE1BHw73a9pQWAjZfHvp5AqWaqPP1WjKoSkkCwM7ydjtUU+T5Eds8Nm8fOfTrLcO4WPmfpoNH5ZtYWMSIQDAyy8754mAr0H46oKx9DCWp8IwbtJedvreYknPJVjK5Mk7BHMSjOuK9E3kWj3WYJNOgWQT5ol5BrfuNYBKaI4eMkMUTCmmuWI6OA92ikNT0CdWo3Z3O5r2rbeWZ1l88ux8crjScLhf0880mshWOYvRUpKFQapG70FPk+RHfPvZ11i47EIsTF6LncAlgaf5S2QEG5nADhxh+fLL/f2XZcHmzU4U2ITpZ/bM2Vh/8qGUELPg6qvhj79ybP8JwZzwzimWbMI80OZMGo/qjjBWtnNy82kl3WsAlZhQ9pAZoqIU08F5sFMcmoK+1IZRiIaQrndvbh5ouy8mkFmhWko6/1+P21sTj/iP3zgWC5NJbOAilmNEbCabPjZaE/qOTR6gxWJw110D29r7HDHg2pYFj2wYyf9dGXLNbp4Q5uk6Dn/QzzeuMxnxs7sRSyHznoLxLseQKWc5DlXvpGI6OA92inkLehExgXXATuVsDn4U8N9AAIgAX1RK/TXNedOBXwAmzqbhP3Eh3aVTKU+LTJEdqxHILPWZa6SxnjZ8OxfTyUQ2YKAQAGVxgkTYodIL5/XrnXfDcAYwK1Y4lipQnMirdHMo4Mcf9LMDP78NQxtZsiSPiUh/0E8oU8fR0cFRP/9nsC3nezlDUpeLYttMLU7iJiimg/Ngp1iIRv8tYCswPP79e8BKpdRPROR78e//mHxCvHO4DfgMsAN4TkTuV0ptKTnltUKm3r3WA5mVgzQCYf2i9bx284OcHj9EEseKOPZ5NegqgNOvgiPkP/pR2Lo18Y/NGKL4ifLhnlksWjQiycSTwZwaH5Wp7h5s08dbt/6ekXNnpb2vP+hPPzIIh/sTBU4PNBTK3YP26oIppoPzmMtuXoJeRFqAi4B/Bb4T//lzOEoQwBIgTIqgB6YCrymltsWv8/v4eUNH0Gfq3avV47utXbl1vTQCIUoLj/zozyiSBDxg+Ay2n/lFOlfnNrVYFmzpq20KMOimid9xCfaffNz7EIyKRWlVETq7A4TD/sGPEQ6junsQ25nI3nLNr+gZP7kwU0/yvJBpFjYv5DEKchOtlr261HpZy6OQNOSr0S8EboABhs6RSqndAEqp3SJybJrzjgeiSd93AGeku4GIzAXmArS2tuaZrBohXe9ejR6/VO0qtfK7qa0lCVPV3cM77cv4zd3DiXVbCODowsIx54xj1k8+xY3tflhd6E0EwWYPx2FhopRwfG8nl3IPJhaWbTKxOQSkCK+2NmzTB7aNjckb9hh82bxmMq1XWLkS2tud38aPLzTxnqBgN9Fq2KvdqOe1PgpJIaegF5GLgTeVUutFpK3A60ua39IOtpVSi4BFAFOmTMkwIC+QeuqV3XiWUrSrdJXfRW1tb/M4jrINDGxsW3hhi4ndY2GgsBHeYCxPci57O1r44/cM9u0r/B6GAcoGAzteMW3GsB0T5z4iFuuXRhgxPkWrDwZ569bfs+WaX/GGPYbdTQE+k8lDJ9t6hYULYckS578lS7wpQHLUs7SeRezI7mde6dFrqfUyn/NrTLbko9GfBXxWRGYChwDDReS3wF4RGRXX5kcBb6Y5dwcD1aMWYFepic4Lr/fKhVSUQp4l5brJw2yaJ7JdnUkz+zhK3mNkIdpVusrvorb2Slczr0qIMSrCdlo59uktmL7J9PaCQtjKOKK0Qq9i9eqBxhw/22njSV7lJJ5hcL6IwOc+BwcOwOOPG7xqn8wENvIehxNhDBYmUUbxhhrL1sdO5sY1g7N45NxZ9IyfjC8c4TPZTBbZ1issXVoVM0beppY86lmqZ9HJzV0w7cvZ62alR6+l1stc53tdtqQhp6BXSs0H5gPENfrvKqW+IiI/BeYAP4m//ynN6c8BJ4nIWGAn8CXgy66kPBce9GXto9CKku+zpFx378J7aZ/3IlaPhWEajLa2c6nd4ZgpYiZ7N+9lZL5Zkq7yu6itBdoCrPb52dE7GhObz6iVjLpoCg89ALZlM4OHeZ/DeJmPkSzkDSx2cTx/5O9Yzgx+zjzu5/OAI+ATC5JvuMHxrU/sW76LUXyEv/IGY/kVX+cIPqCVThpUT79DDAM7zYwTrZnyKVWjnz0b1qypqBmjIFNLHvUs1bNoZPi33rPBu+E+ne18L8uWDJTiR/8T4A8icgXQCXwBQERG47hRzlRKxUTkWuARHPfKxUqpF0tNdF540Je1j3wWTCWT77OkVMADS1dg9RzvDLNtizHqjT4zhcLiwNIVkMF7ZBCZKr9L2po/6Cd061Qi1/yUgO3Emo8cNxZ4HQFMLM5iLa9yMjYGILQQZSxv8AZj2c1xPM1ZXMN/8jxT2EELZ58tTJ/en13z5vUr2fsYyT6caaXDOMCl/NbpADH5LZdyyrOrUD+Yi8R6nTxftSq/kVfqsncYmGfjx/fb6StAQSty86xnAzu8/M5xlXwUpVLrZbbzvSxbMlCQoFdKhXG8a1BKdQHT0hyzC5iZ9H05sLyURBZFMb16LnOKW3a5YhZMzZnjvIdCeVfAYbNnYK7p1+i3W2OxLBOFEz5g2OwZhaW7zENw/9wZ+MeP6MvjAC2YSyLEDsYQBa3s4DL5DeuPPJ9hHOAz7y1DWRbnsIbf80XOYQ0v8TECvMEeYxQ/+YmvL7k33eRkixow++OMDAJJdnqFxUX2g4xe1g70OId1dzvCOduzZxM+qedV0E6fbRHXIGrFZ7zaGrUH/eRzUV8rY1MFcakrWJPPzdPcko89dP+G1zlSDESlLJhK15Gk3jcUyvwMKRVwZDBIaPzkfhs98OebT6F512aOuuLzGX3BK0KmTjOpzPzQF4J4490bsXtt/PYO/Pv7NWIBhBhflzt4VZ3EHkYx3Xycm3/1EYLBfs+W5D7QMAaa0CMEsDCBGAIcyz62cCpTeRbJ5KifSr7Cp8JCys8OQnMgwokEQufkNj3Vgs+4FzRqj/nJ56J+BH2pEyS5GmAeDTSTPTRZprUQZeXi/VyiDMfTo6ERo60t86KcQgVDSgVMtSv77/tu/nlSLgooq0T6J4QmEF4QZtuj2wYdI8Ck6y+k6d29fIYI/tD5kCTkYbASBo4p57nnoFs1spHTOJ5djGYPAFFa2cQEJsompKEhewcL+QufSgqpeD77e3rwNzZCaCWDXEdrkRrUqKtN/Qj6UjWlXA0wjwaabA+NdI/ixwtiTJ4N110Hvb3Q0AD/NfMJ/L2v8zDTGSYf0nzZbCYGg3DTTekX5XhBe3GbIsrKH/TTtqCN7eHtzm5TyRjQNKKJs//tkqzXSFXCFi6ES9uifKmnHZOB1xTDwPjud5ERnfkJk3yFTyWFVLVNHOWkxjTqalM/gr5UgZirAebRQBP20Ej3KJbYl2I/7uOulf0r30/q2czM+79Bg+rGwuTehss4OXQxANHmibzB2YzhdUazu39RzvyznVWi7U8QIUCAlow6Wc249hZZVv6gnznhOWxq38QHez7g1eWvYlt2YZEnkzIpGAzyw8sjvHa75RjvnSD3gLP69qhZ50Ahq1/zFT7pjitH4dWjkqApivoR9JXQlHI05ITr2Y8XxLAf92HZA9eLvczHeM4+nbN5GhvhkzOPBuCJz/+SjgfexlJtCGdztHTxdtPovkU5UVpoXwJW92uYd71G6Nap+OcOnEitKdfeEsoq2RRV8I5NaTLpnFCAyBJnslIMwbZssB2XTldjxheYLlcKrxZMHDWjndQ29SPoobThnEuNzR/089UFcE/cXRr6NfoYPp7gfD7FM/TSSJhzOaztxxzVs4sYpwMChsnhF3yKqbNPJRKO8ObmN9mydEvf5teWbRG55qeOd0pS+qo2Si+2oZY69O7owB8OO6atfIVxezscPDhgwxX//Pl9fuHDmofx8LyHXYtPnzflLDwvmzjc7OAq5TFXo9SXoC8FFxtbsiLV3Azf/KbjoQfC//AFDnIoT5ltfPm4Qzmy503+wkScKUVni7xTZ5/Kw/Me7t8M2/kLsDCxCdivD0pfVUbp1RpGFLvrz+LF/f6VPl9fJiWPEo4df2zF9pDtY6iaWNxqcy55zNUzQ1vQJ/fyLje2VEXqG99w3PleZDxbZDzX/wNcPCtK+6LxcROPADaH8iG7N+x2Jhzj7n8tKkpAIvTQyCfkRfxN+walryqj9GoNI5Lve/Bgbh/3xDmJoZUIXHZZ2nNyrn4th2ZYCyaWcuBWm3PBY67eGbqCPl0vX6bGtmHDwB2QlIJbboETT/RzP59lBg8hKFrYwVH227z1ZDOGz8BSFi12lBBLMJUFDQ0YV1w+cNFUXPBEmycS6zqcrwwFTbStzdHIrfgk6uLF2ReSpUtrLnfJdLilGabrLLxsYikXbnVwLnjM1TtDV9Cn6+Xnz69YY+vpcba7a7Q/RCH4iTKev/AIM1BbD2A0mEz+bAuT7r8T0445DiFWDFpbBy2minYfQ7t9KZbRgNnkyx061i2qpYkGg45GfvvtjqC3rPzWF5Sa1kJDV6RDmxEG4kYH54LHXL0zdAV9BXv5UAjuvjthp+8PtDV6NKyLr8r8CF08woy+OC5Wr+KvL+zkPfswjsXnhC2wDd5uHsfIxIXjnVXEbnXiq9vkjmfiNtXSREOh/lAC+ZZfqWl1Y69fbUYoD7nKdiiOmJIYuoK+gr18MOjExEpMzibiXe3dvJflD4ym3boUhdBIN/0zr8K21xURvsjx7GAMnWyXACd1NfcL+uZmECEgnZjKwjKMynqLVJNqaGldXaXv9avNCJoqIEq5s8eHm0yZMkWtW7eu2slwjzQ7Du1tHsed814k0j2K7cZY/vbMffx19YtJkVUM503AEEf0DzDLJEwA8a3pot/+DyIjJlTWW2SoUU4bvUZTIiKyXik1Jd1/Q1ejd5NsDTfDjkNHGz6Oil1BTMVoUVEOOTiaFnMXY6w3eNX8GG/5jsOOOas+py+czoGuAwOFeMIEYNsggn/Ee84qWk35cGsUMcTNCJrKowV9qaTT8qBfGCTbZBPufcBO+3jeUnEbrwLj2T9zKUswxeY839Ps/OX/Euk6PLOGrk0AuSmXK6TW4jU1hhb0pZI6udbePnCScOFCR5NPEvIYBtuNE1GW2RdbJUDEiYmuFKq3F3/XRvzz52e+r/YkyI6XvFsqmRbdoWjSYFQ7ATVLR4ezm0Vzs9N4DcMxy+zZM1Dwd3XB5Zc7/4Fz3AUXELjtesxDfH0lEBHH+8ZCiNkGe5vH5U5DMFiaS2jiGTo6ijvfy6Tzbik3mfKzUmlJdCjf/77zXs1yree6VYNojb4YUjW0666Dn//cacgrVjgaPPSbVDZv7l96b9swcSL+Dffz7U++wf6Dh/Bu2+d4buMJtD8GARVhuzF2oHdNJZ6hVC2zEppkIfeotGkrW35WKi1ecd300mhKA2hBXxypDWrjRkeA27bz/XOfg6lT+wVSONzvlicC//7vYFkMA4YBozeu4CO3/Dd3rhnLzp5WzEazL3JlXhQjZN0UCpVo2IXeo9KmrWz5Wam0eGXexisdjqaPnIJeRA4BVgNN8eP/qJT6gYhMAH4NHA5EgEuUUu+mOT8CvAdYQCyT+09NkdqgJk7sn4RVCh56CG64YaBG19TUv49db+/A6/X2MrJra18UxYJcJIsVsm4KhUo07GLuUUnvllz5WYm0eGXexisdTjJDfO4iH42+GzhfKfW+iDQAT4nICuAW4LtKqSdF5HLgeuD7Ga5xnlLqLXeSnJtEmSYvTiq5bFMrSrxBRfcfQeQ//peJ1qEcwfvOsb29zj51Cxf2N/DkcJbXXdcfwxicrafa2nIH1EpHsULWTaFQiYbtReGRjFeErBdcN72SFwm0KQmUUnm/cCwNzwNnAO/Sv+DKD2zJcE4EOLqQ+0yePFkVy9q1Sh16qFKGoRQ474ce6vxe8kVNc8DFOtd2qh83LFA/5J/VOiYp29Hn+1+Zbrx2rVJXXaXUrFnOeymJy5C2klm7Vqkbb8z/eoUeX4k0abxNpcrzxhud9gHO+403lvd+VQJYpzLI1Lxs9CJiAuuBjwK3KaX+LCIvAJ8F/gR8gcy7DivgURFRwO1KqUUZ7jEXmAvQ2tqaT7LSkryOCPrN5iVZEzJozZFwxAmgiMEmJjKRjZhJa1sz3thNrasc2lMxGlClTBNDTRPLQMG7a3mNSmrZXh8NVoC8BL1SygImisgI4D4R+QRwOfBLEfln4H6gJ8PpZymldonIscBjIvKSUmp1mnssAhaBEwKh8EdxSJRpIshgIoBYSWWbrqJ0dDC+80Fe9+2nMzaa3eYY3vr2zxj57qtO2FzLynxjt+2F2QRgOSZqh7i9s9pEO6K0T2vv2wmrYtFK3aSSE7ZeMyVVgYK8bpRS+0UkDExXSv0MuBBARE4GLspwzq74+5sich8wFWdytyykmsPzstHnMuqnVhSAadMY0dNDyNfAX+b+B6MmjWJk11aYFXIiK+YTEqESi2fcnqjV9s6qEwlHsHoslKUqH63ULTLUsbKNVIb4aDAfr5tjgN64kD8UuAD4NxE5Ni68DeCfcDxwUs89DDCUUu/FP18I/Iu7jzCYgso0OThYYgjQ1DRYgCVf9Kab+rQRQykmPv8buHsTxGL9wi8R/iBxbgI3YprnSzkmasuh7esRQkEE2gKYjWbl97Z1kzR1rC5GKh4lH41+FLAkbqc3gD8opR4UkW+JyDXxY/4XuBtAREYDdyqlZgIjcUw9iXvdq5R62O2HKJhkwZJk1LcRfmOHiB1sZG42oZhqH3r22f7/enqI3vxfRB58gYD9Ov6mHw3sNNyIaZ4vpdgmM/WWbmv7eoRQMP6gP6Mrbk31mSl1rC5GKh4lp6BXSv0FmJTm918Av0jz+y5gZvzzNmBC6cl0kVTBsnAhNDZiH+zhoGrkDq7kGRXk9fBGRoTDXDxxB+NHRAdv+7ZypeNCmSzkRYiaAdofOArLOhuTMwl134M/udNIjmkuAkuXwvjx5WmV5bBNlqLtp0MvrimKdK64td5n1sVIxaMMvZWxqYKlqwtWruQ3oTB3vHYuz3AmoPjZo+MJ0sG3Hp2Lkm7kkH5zTrQjyqb2Lnj/XCawCz87nGt/8pNETv8m1qLXUAgWiohxIv5krTex32lPj+OE+fjjsGaNu60yVa1zu7Xnq+03NztmrmydjJseETWlzrpLRwcsWNA/yKzFPjPbSEVTGkNP0KcTLMEgseuDPPN1SISTVMDZPEUjPYjqbzlRWljStgSrxwIOYyNfZQ5L8DfuZe8V83lngw+jwcTutTBNk8Ct1w9ubYkAZ+C+rb6aal3qTPi8ebnT4daoo6MD+7zzoacHZfh461f/zci5s/I+t5Y7iHTTTLXqRVjUokFNToaeoM8gWObOhfdXP8+Ke9/mNLWJ/+QbrOHT9NCIIT0YpgmdnXS1P4jV2x9y2BIfkU9+kRGj97LiuhV0WsdjmAanz53MhNCEwZU2HB4cAsFNW321TSEJbT9pwjpnOlwYdexvX8bw7m4MFJbVy4tX30bP+Mm5hUat2zsYuHbEEMXkE/7K/72+l2CwrGHxNDXE0AxTHAwOCu8b7Yjy4R8e4Gy1hqP4K3/g7ziJV5nLr1k1JuRo4XfcwWl3f4dWcycALUQ5W57i5Od/z+F/updLehZzvNWJHbM5svXI9EImeTI2QbH7j6YjMWIxzeqqdaWko4gQtxH6wzzbmLxhjSESjuQ+MV3HWGP0ZbWhMFWMCduW8eK8O4l2RKudNI1HGHoafQYi4QixGICBhWIYB3mZk3mOMzhj+3O0EcNUFgbw+Ss/wgt7DiP4wD0Ydi8Sc8w9BooAEXbYfnY+u7OvoQ2wOSZPxoLTgTQ1uSeQvbI4pNh0FKlhN4cu5rd3bqA1to0IAXY3Bbgwn8m8Olg1mcjq3yyIYD++ihY7itUj3vBaqXGzWL0wtAV9UiUMtAWwxIeoGAYGT3EWh9DNJfyOx9U0vsadNKAQo4ERoVl8OhyGB6y+OPN2XJOMEADg5T+9zKsPvurE+1FgNsX9gpMjWZqmsylJKORuI/DK4pBi0lGk6ckf9HPB6u+zqX0TI4EL05nNMqXRCx1jiQSD0LLAR/ua3Vg94g2vlTowi9UL9SXoOzqcrfwgt/BMqoS2r4HtM37Ea5xIlOOJMAaAE2Q7T6hpKKCdECfyOtvtE7mQFkdgJzRBn4+uMy7m/tUj2JEI+aPAjvWbaEYdjBBb8GNY8NW6ECxlI5eGnUVDLHoir5wdYwU1Ws95rVR7vkjTRyL6pKeYMmWKWrduXWEndXTAeec5rgfgCIlsFeumm5wt1ywLC+F+PsdqzuFhLuQlxgFCU5Nwxhlgr17D+azCQKEQWsYdzinnjuTkSYfRtKGDF/Ycw9ZdR7LruV2Qkp2CzfFECXEPPkMhTVqzGUA6QZhJONaahuiR9FYtAJpHnn+oICLrVYb9PupHo09oDwl6e7ML+rjmqA52s0O18BdO4x2O5DjeZA/HsZ9menvhkEPgJQmwXbXSiZ8xdGJt3cnOra+wyjBADkNZHwAfDLi8GEKLRDnPegwQfMQQG+yD3bzbvowRmzc7i6Vmz3ZcfoYimQRBJg271jRED6S3qmEF6sQsVg/Uj6BPDksAfZt5ZCQYhIULUVdfw3arlU5auYdLsTBROH7u8e1dCYf9tPeEUAgGNnP4DWPYgbKzjIYEgpN7CDwXRZSNAmzAUgZP37GVGdZPMVDw6KPO8cnCvpYmsEpJa6GCsNYmTj2Q3qqHFfDKfNEQp34EfTAIq1blb6MH6OrCQDGWSJ97nsIgYX8xDBgxwpkv/fWvHU9UG4MIYxlDFBAUcJAmDqUbw2cgpmDHbMxGE2lrw97w3xhWDFsMNtgT2KQmELAi8TPjLF3aL+hrabhbaloLFYS1piF6IL06rIAG6knQw0DtIeGLna2BNTeDCH5jFzPUw4RVGwoFcY0+4fW4eTP0CX9sDuddVnM2J/EKx/EmTXSDYTDztpkcO/5YIuEIw5qHsXTew4yyLmWssZ1R3/l7Hrlll9PgDEH1Sr+wnz27P00eGO7nTalpLUYQ1pqGWOX0em6CVlMV6kvQJ8hH0+zocJbo2zaYJmO+eBb8lwnOV668EiZNcmRQZyeMZC/j2MphvM8KLiKGSS8NjGSfM0mrFAe6DvR5fqy5aQ1Wd4yo3cIOWjhvxEcJrbygr8EZmz+Z3kbvgeF+3riR1loT3DWIDiugqU9Bn0nTzBCeuIMgc/7g7JvS0AC33upc5tprnRDzhgFnySuco9bwNGdh4URsfoOxnMMaFBaGMXBYHGh+H9PuxcLAtG0Cze8PbHDBuYMnYRPpW7jQxV3Ny4gHTBOeopbmVjRDivoU9Bm2/ksXnpjubp5Q53Kw19ntVQQ2bIA77yS+UtbpLyLGWJA1jLEjmFjEEHbgZwkhTjQiXPkPw4mEI7y5+U0OdB1g4rO/I8RqIowhYHTi7zoMmJE5zbVkm09Ga+QOtVp+miFBfQr6dJpmapCtri5YuBDrG9dyjgpzCAf5kEMxjH6Pm2R24Kdxbgj1eISPvPY2+xjZ9/ub5vGcsrCd42OdKFvRQpQgv+dwLPxEwZeHWaOWbPNuUG/a71ArP01NUb9BzVIDl6ULstXVBbbN2azlES7kXJ5k0iTHYaepqT+acCIczfkhP5+6/uw+IZ8gFoPXe/197pYBIhjYzpSuiOO2kzpJnBywq6PDmQjw+aofjCwfigg6Nuj8adOcBWvTphV/HS/hRjC5UvNVo8lAfWr06chgT1YNjfT29jCZ5+mmiSuuGBxWPdlcnpDXd93lmHhsG8YYO5hgvwDx6MURAtgYgIVhGM6sLqQf3kP/b4lZYLdj37iJGyaKetN+3ZhbKXYbxnoaFWnKxtAR9DDYnhwM4ntyJc/eHObeXW1cdkWwb340m+l5bnwetaMDnmiPYt99D8qywIwPASwgsezKspxZ3Q0bnP/ShcRN/AbQ2urtRuuGkM6176zXhVdyGsEd23yh+arnBDQFkFPQi8ghwGqgKX78H5VSPxCRCcCvgcOBCHCJUurdNOdPx9lb1sTZNPwn7iXfBYJBpt4XZGpxpxILR1gVs1C2Qkzh9CtP5+PbdrLr0ePZzhhO5mVG9u6D22/vH9rDQAFXK+6U4J5LZTpvnVoQXqlpnDPHndFJofmaT8dQC52mpiLko9F3A+crpd4XkQbgKRFZAdwCfFcp9aSIXA5cD3w/+UQRMYHbgM8AO4DnROR+pdQWV5+iiqSuPJwQmgCbTdofPQYLkxg+jiWMKOUY86+80tHakxtfJVwU3Wr0brlUphsy1YJJJzWN4E5HXWi+5hPl0+udpqZi5BT0yglv+X78a0P8pYBTcDR9gMeAR0gR9MBU4DWl1DYAEfk98DmgbgR9upWHa8IRLKMBZcMbnMA55lpMLKfBpbO/l9tF0e1GX6701sJisdQ0hkLOy61ONN/zc3UMtdBpaipGXjb6uGa+HvgocJtS6s8i8gLwWeBPwBcgEYh9AMcD0aTvO4AzMtxjLjAXoLW1Nd/0e4LUlYeBtgBmkw+rO8Zus5V3vvh1jtr3srMKthqNrVYafS0swMqUxmqkNVvHUAudpqZiFBSPXkRGAPcB1wEx4JdAM3A/8E2lVHPK8V8A/kYp9bX490uBqUqp67Ldp6h49B4jumgFkWt+ysnWFkaqvc7y2qam6gyh9TB+aKJt9EMK1+LRK6X2i0gYmK6U+hlwYfwGJwMXpTllBwM1/RZgVyH3rFX8XRvxq9Wg4t40tl09bboWNGWN++hVy5o4+XjdHAP0xoX8ocAFwL+JyLFKqTdFxAD+CccDJ5XngJNEZCywE/gS8GX3ku9hkuPj27aj0VdzCK0bvUYzZMlHox8FLInb6Q3gD0qpB0XkWyJyTfyY/wXuBhCR0ThulDOVUjERuRZnotYEFiulXnT/MTxItlVXGk0CbV7RVID62TNWo8kHLwnWTHMnXkqjpmYYGnvGajS58NqkdDpvKPBWGjV1Qf0GNdMMRAfMyixYq0W6QGheS6OmLtAa/VDATRNBLZsVvOZbnskbyktp1NQFWtAPBdwyEXjN9FEoXnQzTRNoz3Np1NQ8WtAPBdJpssWslq2VFbYJ0o0+asHNtBbSqKkptKAfCrhlIvCa6SMb2UYftWx+0miKQAv6oYIbJoIaMitE258gcvCTBNQ2/D27B24QX8vmJ42mCLSgH8oUYyKotFmhQO27owPuv3krh9xvI6oNk7MJmb/Hnxh91Jr5SaNxAS3oNd6lQO27owPOP8/mk937OA+FgYElBpHLf4g/de/gUsxP2vSjqTG0oNd4lwK1b+dw4Q3Gcg5rgBg+n0EgdE7/QaWan7TpR1OD6AVTmspQzIKtdAuKch6u2MlofsuXed8cwcxbZw7YKwBwBPP8+e7t7arReByt0WvKT7FacIHadzAIT6wyWNa+nwDvcHHo/wwW8qVSS55HGk0cLeg15aeUCdACJ3+dw0cAEwtPZ743qBHPI40mgRb0mvLjRS24lAlVvaBJU2NoQa8pP17TgpNNST4fXHZZ+k3by3l/r+SFZkigBb2mMnhJC042JVkW3H47LFlSGQ8a7bWjqQLa60Yz9EiYkkSc70pVzoNGe+1oqoAW9JqhR8KU9PWv5+e+6WYs/wJdRjUaN9BbCWqGNrns5R0dzn+9vdDQ4E7IBG2j15SBkrYSFJFDgNVAU/z4PyqlfiAiE4FfA4cAMeBqpdSzac6PAO8BFhDLlBCNpirkmjtob3dMLOC8z5sHCxeWJqCz3VN3ApoykM9kbDdwvlLqfRFpAJ4SkRXAvwA/VEqtEJGZwM1AW4ZrnKeUesuVFGs01eS555zJ1HJMouqJWk2ZyGmjVw7vx782xF8q/hoe//1IYFdZUqjRVJNQCJqa+r+Xc+JWT9RqykRek7EiYorIRuBN4DGl1J+BecBPRSQK/AyYn+F0BTwqIutFZG6We8wVkXUism7fvn2FPINGUz6CQVi1Cq66yhH45ZxE1RO1mjJR0GSsiIwA7gOuA+YCTyqllorIF4G5SqkL0pwzWim1S0SOBR4DrlNKrc52Hz0Zq/EkpdjP85n0DYehuRm6urSNXlMw2SZjC/a6EZEfAB8A3wdGKKWUiAjwjlJqeI5zFwDvK6V+lu04Leg1dUUu27u2zWtcIJugz2m6EZFj4po8InIocAHwEo5N/tz4YecDr6Y59zAROSLxGbgQeKGIZ9BovEsuP/tctndtm9eUmXy8bkYBS0TExOkY/qCUelBE9gO/EBEfcBDHlIOIjAbuVErNBEYC9zkKPz7gXqXUw+4/hkZTJfLRxnMFdfNi0DdNXZFT0Cul/gJMSvP7U8DkNL/vAmbGP28DJpSeTI3Go+QTgjlXUDevBX3T1B06qJlGUwr5auO5FmZ5Keibpu7Qgl6jKQWtjWtqAC3oNZpS0dq4xuPo6JUajUZT52hBr9FoNHWOFvQajUZT52hBr9FoNHWOFvQajUZT52hBr9FoNHWOJ7cSFJH3gJernQ6PcjSgN3HJjM6f7Oj8yUyt580YpdQx6f7wqh/9y3rLwfSIyDqdN5nR+ZMdnT+Zqee80aYbjUajqXO0oNdoNJo6x6uCflG1E+BhdN5kR+dPdnT+ZKZu88aTk7EajUajcQ+vavQajUajcQkt6DUajabO8YygF5GJIvKMiGwUkXUiMjX+e0BEPoz/vlFEfl3ttFaDTPmT9H+riLwvIt+tVhqrSZb6MzWp7mwSkc9XO62VJkvefEZE1ovI5vj7+dVOazXIkj/NIrIq3q5urXY6S0Ip5YkX8CgwI/55JhCOfw4AL1Q7fdV+ZcqfpP+XAv8DfLfaafVS/gDDAF/88yjgzcT3ofLKkjeTgNHxz58AdlY7rR7Ln8OATwNXAbdWO52lvLy0YEoBw+OfjwR2VTEtXiRj/ojILGAb8EHlk+UZ0uaPUupA0jGHxI8bamTKmw1Jx7wIHCIiTUqp7gqnr9pkyp8PgKdE5KPVSphbeMbrRkTGAY8AgmNSOlMptV1EAjiV8BXgXeCflFJrqpbQKpElfw4DHgc+A3wXeF8p9bPqpbQ6ZMqf+H9nAIuBMcClSqn7qpbQKpAtb5KO+TvgKqXUBVVIYlXJlT8i8lVgilLq2uqksHQqqtGLyOPAcWn++n/ANODbSqmlIvJF4C7gAmA30KqU6hKRycAyEfm4UurdiiW8QhSZPz8Efq6Uel9EKpfYKlBk/qCU+jPw8XiDXiIiK5RSByuV7kpQbN7Ez/048G/AhZVIazUoJX/qAS9p9O8AI5RSShyJ9Y5Sania48I4duh1lU5jNcmUPyKyBvDHDxsB2MA/K6Vqe/KoQAqoP6uA64dS/cmWNyLSAjwBXKaUerqa6awWuepOPWj0nvG6wbGLnRv/fD7wKoCIHCMiZvzzCcBJOPbooUba/FFKna2UCiilAsBC4MahJuTjZKo/Y0XEF/88BjgFiFQjgVUkU96MAB4C5g9VIR8nbf7UE16ajL0S+EW8UR4E5sZ/Pwf4FxGJARaOHfHtKqWxmmTKH41Dpvz5NPA9EenFGe1crZSq5VC0xZApb64FPgp8X0S+H//tQqXUm1VIYzXJ2LZEJIIzUdsYd3q4UCm1pRqJLAXPmG40Go1GUx68ZLrRaDQaTRnQgl6j0WjqHC3oNRqNps7Rgl6j0WjqHC3oNRqNps7Rgl6j0WjqHC3oNRqNps75/wGXrSi+I45rVAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#ALL TRIMS COMPLETE. let's convert the partisan data to the format we use for HD code\n",
    "# in this prototype, we only use 2020 presidential data, but this could be modified\n",
    "vtdGOP = [0.]*nPrecincts  #Each precinct's R/(R+D)\n",
    "vtdPop = [0.]*nPrecincts   #THIS IS VOTER POPULATION\n",
    "vtdArea = [0.]*nPrecincts\n",
    "vtdCPx = [0.]*nPrecincts   #these are centroid x and y of each precinct\n",
    "vtdCPy = [0.]*nPrecincts\n",
    "plotcolor = ['blue']*nPrecincts\n",
    "for p in range(nPrecincts):\n",
    "    vtdPop[p] = vtdTrump[p] + vtdBiden[p] \n",
    "    vtdGOP[p] = vtdTrump[p]/max((vtdTrump[p] + vtdBiden[p]), 0.01)  #avoid divide by zero\n",
    "    if (vtdGOP[p] > 0.40) :\n",
    "        plotcolor[p]='purple'\n",
    "        if (vtdGOP[p] > 0.60) :\n",
    "            plotcolor[p] = 'red'\n",
    "    vtdArea[p] = vtdGeom[p].area\n",
    "    vtdCPx[p] = vtdGeom[p].centroid.x  #not needed except for graphing\n",
    "    vtdCPy[p] = vtdGeom[p].centroid.y   #not needed  \"  \"  \"\n",
    "    if isSkippedPrecinct[p] == 0 and p%10 == 0: #memory drain if we print all\n",
    "        plt.scatter(vtdCPx[p], vtdCPy[p], marker='.',c=plotcolor[p])\n",
    "for p in range (nPrecincts):\n",
    "    if p%100 == 0:\n",
    "        print(p,vtdGOP[p],vtdPop[p])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "a1e3f0d2-c21c-46d4-8227-e75dfd5e89b6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "original and buffered map areas are 11.467015494340503 11.483527621923406\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "MAP = tractMAP  #committing to the trimmed map (for TN, using convex hull)\n",
    "bufferDistance = 0.001  #do minor buffer for OH\n",
    "origMAP = tractMAP    # let's keep a copy of the original map prior to buffering\n",
    "MAPbuffer = MAP.exterior.buffer(bufferDistance, single_sided=True)  #gives a little exterior buffer\n",
    "# MAP = origMAP.convex_hull  #alternate to buffer for weird state shapes\n",
    "bBox = MAP.bounds\n",
    "MAPMinX = bBox[0]  #these four are useful for slicing ops, and are basis for map grid (without buffer)\n",
    "MAPMinY = bBox[1]\n",
    "MAPMaxX = bBox[2]\n",
    "MAPMaxY = bBox[3]\n",
    "\n",
    "MAP = MAP.union(MAPbuffer)  #not buffering for TN\n",
    "print(\"original and buffered map areas are\",origMAP.area,MAP.area)  #same if we didn't buffer\n",
    "x2, y2 = MAP.exterior.xy\n",
    "plt.plot(x2,y2,c=\"green\")\n",
    "x2, y2 = origMAP.exterior.xy\n",
    "#plt.plot(x2,y2,c=\"blue\")\n",
    "plt.show()\n",
    "\n",
    "minTractPop = 10  #was zero to not exclude empty interiors"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "8e271f55-e118-4575-bc99-c28c59f435b7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2020 population, Trump+Biden voters, lean =  11799448 5833999 0.5407669764770272\n",
      "compare to Census 11799448 Leip has Trump + Biden = 5833999.0 0.5407669764770272\n"
     ]
    }
   ],
   "source": [
    "#let's confirm some population stats - these match 2020 census, USelectionatlas.org :-)\n",
    "censusPop = 11799448\n",
    "atlasTrump = 3154834.\n",
    "atlasBiden = 2679165.\n",
    "\n",
    "print(\"2020 population, Trump+Biden voters, lean = \",np.sum(tractPop),np.sum(vtdPop),stateGOP )\n",
    "print(\"compare to Census\",censusPop,\"Leip has Trump + Biden =\",atlasTrump+atlasBiden,\n",
    "      atlasTrump/(atlasTrump+atlasBiden) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "6c47f717-f208-4a4c-b825-a3181a83c6ee",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "state pop before, after slice operation are 6910839 6910839.0\n",
      "state Trumpers before, after slice opn are 1852463 1852463.0\n"
     ]
    }
   ],
   "source": [
    "#Check on integrity after slicing\n",
    "sumPop = 0.\n",
    "sumTrump = 0.\n",
    "for t in range(nTracts):\n",
    "    if isSkippedTract[t] == 0:\n",
    "        sumPop += tractPop[t]\n",
    "for p in range(nPrecincts):\n",
    "    if isSkippedPrecinct[p] == 0:\n",
    "        sumTrump += vtdTrump[p]\n",
    "print(\"state pop before, after slice operation are\",np.sum(tractPop),sumPop)\n",
    "print(\"state Trumpers before, after slice opn are\",np.sum(vtdTrump),sumTrump)\n",
    "for t in range(nTracts):\n",
    "    if isSkippedTract[t] ==1 and tractPop[t] > 0:  #should not occur\n",
    "        print(\"missed pop for tract, pop, (x,y)\",t,tractPop[t],tractGeom[t].centroid.x,\n",
    "              tractGeom[t].centroid.y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "b5334311-b597-4568-88c7-eb3c9d4bdf09",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "map has a total of 120 grids for 15 districts\n",
      "starting grid no 0 at x = -84.64107166666666, y = 38.58237729999999 \n",
      "starting grid no 5 at x = -84.64107166666666, y = 40.3719203 \n",
      "starting grid no 10 at x = -84.28260499999999, y = 38.5823773 \n",
      "starting grid no 15 at x = -84.28260499999999, y = 40.371920300000006 \n",
      "starting grid no 20 at x = -83.92413833333333, y = 38.58237729999999 \n",
      "starting grid no 25 at x = -83.92413833333333, y = 40.3719203 \n",
      "starting grid no 30 at x = -83.56567166666667, y = 38.5823773 \n",
      "starting grid no 35 at x = -83.56567166666667, y = 40.371920300000006 \n",
      "starting grid no 40 at x = -83.207205, y = 38.58237729999999 \n",
      "starting grid no 45 at x = -83.207205, y = 40.3719203 \n",
      "starting grid no 50 at x = -82.84873833333332, y = 38.58237729999999 \n",
      "starting grid no 55 at x = -82.84873833333332, y = 40.3719203 \n",
      "starting grid no 60 at x = -82.49027166666666, y = 38.5823773 \n",
      "starting grid no 65 at x = -82.49027166666666, y = 40.371920300000006 \n",
      "starting grid no 70 at x = -82.13180499999999, y = 38.58237729999999 \n",
      "starting grid no 75 at x = -82.13180499999999, y = 40.3719203 \n",
      "starting grid no 80 at x = -81.77333833333333, y = 38.5823773 \n",
      "starting grid no 85 at x = -81.77333833333333, y = 40.371920300000006 \n",
      "starting grid no 90 at x = -81.41487166666667, y = 38.58237729999999 \n",
      "starting grid no 95 at x = -81.41487166666667, y = 40.3719203 \n",
      "starting grid no 100 at x = -81.056405, y = 38.5823773 \n",
      "starting grid no 105 at x = -81.056405, y = 40.371920300000006 \n",
      "starting grid no 110 at x = -80.69793833333334, y = 38.58237729999999 \n",
      "starting grid no 115 at x = -80.69793833333334, y = 40.3719203 \n",
      "done building grids. avgGridDensity, maxGridDensity,nPopulatedGrids = 859522.0087495241 7588807.994177476 107.0\n"
     ]
    }
   ],
   "source": [
    "# this section - ESTIMATE POP'N DENSITY at scale of 1/3 of district length\n",
    "# also, IDENTIFY WHICH TRACTS and VTD's INTERSECT EACH GRID to speed later intersection searches by grid \n",
    "# (above sections already pulled in Tract and Precinct geometry and demographic data, built an overall map)\n",
    "nDistricts = 15   #OH congressional\n",
    "avgDistrictPop = np.sum(tractPop) / float(nDistricts)\n",
    "#MAPMaxX = -80.   #In most state maps, we figure this out from the bounding box of the convex hull; see above.\n",
    "#MAPMaxY = 31.1   # ... but for Florida, we will do manually\n",
    "#MAPMinX = -87.0\n",
    "#MAPMinY = 25.5\n",
    "stateWidth = float(MAPMaxX - MAPMinX)\n",
    "stateHeight = float(MAPMaxY - MAPMinY)\n",
    "stateWHRatio = stateWidth / stateHeight\n",
    "G = 3  #adjustable parameter; G*G = number of grids that fit in an average district\n",
    "nGridsX = int( G*round((nDistricts*stateWHRatio)**0.5,0) )   #OK to have empty grids for a non-rectglr state\n",
    "nGridsY = int(round(nGridsX / stateWHRatio,0) )  #so grids are square even if state has high aspect ratio\n",
    "nGrids = int(nGridsX*nGridsY)\n",
    "print(\"map has a total of {0} grids for {1} districts\".format(nGrids,nDistricts) )\n",
    "nGridPrecincts = [0]*nGrids # will store how many precincts intersect with each grid square\n",
    "nGridTracts = [0]*nGrids    # same, but for tracts\n",
    "gridPrecinctNo = [[0]*nPrecincts for gridNo in range(nGrids) ] # initialize a list of VTDs that intersect with each grid square\n",
    "gridTractNo = [[0]*nTracts for gridNo in range(nGrids) ] # initialize a list of tracts that intersect with each grid square\n",
    "\n",
    "gridPop = [0.]*nGrids #will store approx total population for this grid square\n",
    "gridDensity = [0.]*nGrids\n",
    "gridGeom = [Polygon([(0,0),(0,1),(1,0)])]*nGrids  #initialize grid geometry\n",
    "gridWidth = stateWidth /nGridsX        #geo length of a grid's side length\n",
    "gridHeight = stateHeight /nGridsY    \n",
    "\n",
    "for nG in range (nGrids) : #  create polygon shape for each grid square, compute grid-square population density\n",
    "    x = int(nG/nGridsY)\n",
    "    y = int(nG % nGridsY)\n",
    "    point1 = Point(x*gridWidth+MAPMinX,y*gridHeight+MAPMinY)\n",
    "    point2 = Point((x+1)*gridWidth+MAPMinX, y*gridHeight+MAPMinY)\n",
    "    point3 = Point((x+1)*gridWidth+MAPMinX, (y+1)*gridHeight+MAPMinY)\n",
    "    point4 = Point(x*gridWidth+MAPMinX, (y+1)*gridHeight+MAPMinY)\n",
    "    gridGeom[nG] = Polygon([point1, point2, point3, point4])\n",
    "    if (nG %5 == 0): #print occasionally, should take about one second per grid\n",
    "        print(\"starting grid no {0} at x = {1}, y = {2} \".format(nG,gridGeom[nG].centroid.x,gridGeom[nG].centroid.y) )\n",
    "    counter = 0\n",
    "    #    Now for each grid square, find intersxn with all polygons, total the intersection population\n",
    "    #    Also, create 2 lists: of TRACTS and precincts that intersect each grid (efficiency shortcut)\n",
    "    \n",
    "    if( gridGeom[nG].intersection(MAP).area > 0.0001) : #don't bother w grids off the map\n",
    "        for t in range(nTracts):\n",
    "            # if (t%3000 == 0) :\n",
    "            #    print (\"grid {0}, tract no {1}, ({2},{3})\".format(nG,t,tractGeom[t].centroid.x,tractGeom[t].centroid.y) )\n",
    "            intersxnArea = 0.\n",
    "            if (notPoly[t] == 0) :  # tract is a simple polygon\n",
    "                intersxnArea = gridGeom[nG].intersection(tractGeom[t]).area  #replaced tractGeom w cleanedPoly\n",
    "            else : #tract is a multiPolygon, do the polygon intersections individually\n",
    "                print(\"I think tract\",t,\"is a multiPolygon\")\n",
    "                for geom in tractGeom[t].geoms :\n",
    "                    intersxnArea += gridGeom[nG].intersection(geom).area\n",
    "            if (intersxnArea > 0 and tractPop[t] > minTractPop) : # this tract is at least partially in this grid and populated \n",
    "                if (tractArea[t] == 0):  #should not happen, but debugging\n",
    "                    print(t,tractGeom[t].centroid.x, tractGeom[t].centroid.y)  #debug print\n",
    "                gridPop[nG] += tractPop[t]*intersxnArea/tractArea[t]\n",
    "                if tractPop[t] > (1.0 * avgDistrictPop) :  #flag if we have a mega tract\n",
    "                    uhoh = input(\"Uh oh! We have a tract that's bigger than a district.  What now?\")\n",
    "                else :\n",
    "                    gridTractNo[nG][counter] = t  #add this tract to this grid's list, update the no of tracts in grid\n",
    "                    counter +=1            \n",
    "                    nGridTracts[nG] = counter\n",
    "        # OK, now, loop over PRECINCTS to develop each grid's list of precincts (prev loop was for tracts)\n",
    "        counter = 0\n",
    "        for p in range(nPrecincts):\n",
    "            intersxnArea = 0.\n",
    "            if (notPolyVTD[p] == 0) :  # precinct is a simple polygon\n",
    "                intersxnArea = gridGeom[nG].intersection(vtdGeom[p]).area  #replaced tractGeom w cleanedPoly\n",
    "            else : #precinct is a multiPolygon, do the polygon intersections individually\n",
    "                for geom in vtdGeom[p].geoms :\n",
    "                    intersxnArea += gridGeom[nG].intersection(geom).area\n",
    "            intersxnArea = gridGeom[nG].intersection(vtdGeom[p]).area\n",
    "            if (intersxnArea > 0 and vtdPop[p] >0) : # this precinct is at least partially in this grid and recorded votes                 \n",
    "                gridPrecinctNo[nG][counter] = p  #add this precinct to this grid's list, update the no of tracts in grid\n",
    "                counter +=1            \n",
    "                nGridPrecincts[nG] = counter\n",
    "    gridDensity[nG] = gridPop[nG] / gridGeom[nG].area  #finished loop over tracts & vtd's.  Calceach grid's population density    \n",
    "\n",
    "minGridPop = np.min(gridPop)\n",
    "# avgGridPop = np.mean(gridPop)   #see below for explicit averaging, since there are so many empty grids\n",
    "maxGridPop = np.max(gridPop)\n",
    "nPopulatedGrids = 0.\n",
    "totPopulatedGridArea = 0.\n",
    "for nG in range(nGrids) :\n",
    "    if gridPop[nG] > 0. :\n",
    "        nPopulatedGrids +=1\n",
    "        totPopulatedGridArea += gridGeom[nG].area\n",
    "avgGridPop = np.sum(tractPop) / nPopulatedGrids\n",
    "avgGridDensity = np.sum(tractPop) / totPopulatedGridArea\n",
    "#avgGridDensity = np.average(gridDensity) #avgGridPop / (gridPL * gridPL) #these densities help home district algorithm\n",
    "maxGridDensity = np.max(gridDensity)\n",
    "print(\"done building grids. avgGridDensity, maxGridDensity,nPopulatedGrids =\",avgGridDensity,maxGridDensity,nPopulatedGrids)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "808f513f-21af-4b03-8061-fdeeed33dafd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "here is a heat map of grid density \n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<function matplotlib.pyplot.show(close=None, block=None)>"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"here is a heat map of grid density \")\n",
    "xyGridDensity = [[0.]*nGridsX for x in range (nGridsY) ]   #flipping x and y to get right orientation in pixel grid\n",
    "for nG in range (nGrids) : #  create polygon shape for each grid square, compute grid-square population density\n",
    "    x = int(nG % nGridsY)\n",
    "    y = int(nG / nGridsY)\n",
    "    if gridDensity[nG] > 0 :  #avoid log zero\n",
    "        xyGridDensity[x][y]=np.log(gridDensity[nG])\n",
    "c=plt.pcolormesh(xyGridDensity)\n",
    "plt.colorbar(c)\n",
    "plt.show"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "4013f80b-4fc8-40a1-b708-ee29c29b3ffe",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.9869000000273387e-07 2.3645385499993457e-05\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(np.min(vtdArea), np.min(tractArea))\n",
    "minTractPop"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "ab450500-f1a4-4292-a2fe-71eb2217121d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "I am working on tract number 0 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 19\n",
      "I am working on tract number 20 of 3168 tracts\n",
      "I am working on tract number 40 of 3168 tracts\n",
      "I am working on tract number 60 of 3168 tracts\n",
      "I am working on tract number 80 of 3168 tracts\n",
      "I am working on tract number 100 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 105\n",
      "we have 2 non-opposing shorted wedges for tract no 117\n",
      "I am working on tract number 120 of 3168 tracts\n",
      "I am working on tract number 140 of 3168 tracts\n",
      "I am working on tract number 160 of 3168 tracts\n",
      "I am working on tract number 180 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 189 4.0 0 90.0 0.6493 433659.3\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 191 5.0 0 90.0 0.6425 451596.4\n",
      "I am working on tract number 200 of 3168 tracts\n",
      "I am working on tract number 220 of 3168 tracts\n",
      "I am working on tract number 240 of 3168 tracts\n",
      "I am working on tract number 260 of 3168 tracts\n",
      "I am working on tract number 280 of 3168 tracts\n",
      "I am working on tract number 300 of 3168 tracts\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_106/3832734783.py:66: RuntimeWarning: divide by zero encountered in double_scalars\n",
      "  minR = (avgDistrictPop / maxStartDensity / pi)**0.5   # conservative estimated radius of this tract's district\n",
      "/tmp/ipykernel_106/3832734783.py:99: RuntimeWarning: invalid value encountered in multiply\n",
      "  wedgePop[nW] = tractPop[t]* wedgePoly.area/max(tractArea[t],minTractArea)  #max prevents rare div-by-zero\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "I am working on tract number 320 of 3168 tracts\n",
      "I am working on tract number 340 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 357\n",
      "I am working on tract number 360 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 361\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 371 3.0 0 90.0 0.4317 254348.5\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 371 4.0 0 90.0 0.3536 254348.5\n",
      "we have 2 non-opposing shorted wedges for tract no 376\n",
      "I am working on tract number 380 of 3168 tracts\n",
      "I am working on tract number 400 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 404\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 412 2.0 3 90.0 0.4483 197615.7\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 412 3.0 3 90.0 0.4466 197615.7\n",
      "I am working on tract number 420 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 420\n",
      "we have 2 non-opposing shorted wedges for tract no 421\n",
      "I am working on tract number 440 of 3168 tracts\n",
      "I am working on tract number 460 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 476\n",
      "I am working on tract number 480 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 493\n",
      "I am working on tract number 500 of 3168 tracts\n",
      "I am working on tract number 520 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 523 8.0 1 90.0 0.9713 335662.0\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 527 5.0 0 90.0 0.3678 249313.9\n",
      "I am working on tract number 540 of 3168 tracts\n",
      "I am working on tract number 560 of 3168 tracts\n",
      "I am working on tract number 580 of 3168 tracts\n",
      "7 yoyos for tract,wedge,wedgePop,r= 582 1 436374.5157002335 1.0821\n",
      "I am working on tract number 600 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 611\n",
      "I am working on tract number 620 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 630\n",
      "7 yoyos for tract,wedge,wedgePop,r= 631 1 738662.8080620624 1.0505\n",
      "we have 2 non-opposing shorted wedges for tract no 634\n",
      "I am working on tract number 640 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 652\n",
      "we have 2 non-opposing shorted wedges for tract no 653\n",
      "we have 2 non-opposing shorted wedges for tract no 655\n",
      "I am working on tract number 660 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 664\n",
      "I am working on tract number 680 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 687\n",
      "we have 2 non-opposing shorted wedges for tract no 690\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 691 2.0 0 90.0 0.4045 354275.1\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 691 5.0 0 90.0 0.3848 405289.8\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 692 3.0 0 90.0 0.5019 201574.1\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 692 4.0 0 90.0 0.4926 201574.1\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 692 5.0 0 90.0 0.4836 201574.1\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 692 6.0 0 90.0 0.4747 201574.1\n",
      "7 yoyos for tract,wedge,wedgePop,r= 698 3 868414.3389669433 1.7926\n",
      "8 yoyos for tract,wedge,wedgePop,r= 698 3 35178.64630358713 0.8963\n",
      "9 yoyos for tract,wedge,wedgePop,r= 698 3 900488.3287256849 1.8679\n",
      "10 yoyos for tract,wedge,wedgePop,r= 698 3 177639.2324614895 1.3821\n",
      "10 yoyos for tract,wedge,wedgePop,r= 698 3 534954.1262033246 1.625\n",
      "11 yoyos for tract,wedge,wedgePop,r= 698 3 823629.8384463065 1.7465\n",
      "I am working on tract number 700 of 3168 tracts\n",
      "I am working on tract number 720 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 724\n",
      "we have 2 non-opposing shorted wedges for tract no 725\n",
      "we have 2 non-opposing shorted wedges for tract no 726\n",
      "I am working on tract number 740 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 749\n",
      "I am working on tract number 760 of 3168 tracts\n",
      "I am working on tract number 780 of 3168 tracts\n",
      "I am working on tract number 800 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 810\n",
      "I am working on tract number 820 of 3168 tracts\n",
      "I am working on tract number 840 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 858 18.0 0 144.0 3.3054 494590.7\n",
      "I am working on tract number 860 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 878 2.0 0 90.0 0.679 381965.8\n",
      "I am working on tract number 880 of 3168 tracts\n",
      "I am working on tract number 900 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 913\n",
      "I am working on tract number 920 of 3168 tracts\n",
      "I am working on tract number 940 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 940 3.0 0 90.0 0.7763 272435.1\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 944 4.0 0 90.0 0.6194 416809.6\n",
      "I am working on tract number 960 of 3168 tracts\n",
      "I am working on tract number 980 of 3168 tracts\n",
      "I am working on tract number 1000 of 3168 tracts\n",
      "I am working on tract number 1020 of 3168 tracts\n",
      "I am working on tract number 1040 of 3168 tracts\n",
      "I am working on tract number 1060 of 3168 tracts\n",
      "I am working on tract number 1080 of 3168 tracts\n",
      "I am working on tract number 1100 of 3168 tracts\n",
      "I am working on tract number 1120 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1137 4.0 1 36.0 0.6468 467430.4\n",
      "I am working on tract number 1140 of 3168 tracts\n",
      "I am working on tract number 1160 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1173\n",
      "we have 2 non-opposing shorted wedges for tract no 1177\n",
      "we have 2 non-opposing shorted wedges for tract no 1178\n",
      "we have 2 non-opposing shorted wedges for tract no 1179\n",
      "I am working on tract number 1180 of 3168 tracts\n",
      "I am working on tract number 1200 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1200\n",
      "we have 2 non-opposing shorted wedges for tract no 1202\n",
      "we have 2 non-opposing shorted wedges for tract no 1203\n",
      "we have 2 non-opposing shorted wedges for tract no 1207\n",
      "we have 2 non-opposing shorted wedges for tract no 1209\n",
      "I am working on tract number 1220 of 3168 tracts\n",
      "I am working on tract number 1240 of 3168 tracts\n",
      "I am working on tract number 1260 of 3168 tracts\n",
      "I am working on tract number 1280 of 3168 tracts\n",
      "I am working on tract number 1300 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1307 6.0 0 90.0 1.6555 204346.1\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1309 8.0 3 90.0 1.484 211674.6\n",
      "I am working on tract number 1320 of 3168 tracts\n",
      "I am working on tract number 1340 of 3168 tracts\n",
      "I am working on tract number 1360 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1365\n",
      "I am working on tract number 1380 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1394\n",
      "I am working on tract number 1400 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1404\n",
      "7 yoyos for tract,wedge,wedgePop,r= 1404 3 762119.2942566874 1.77\n",
      "8 yoyos for tract,wedge,wedgePop,r= 1404 3 66194.0504154712 0.885\n",
      "9 yoyos for tract,wedge,wedgePop,r= 1404 3 761268.727350679 1.7667\n",
      "9 yoyos for tract,wedge,wedgePop,r= 1404 3 475766.03399047226 1.3259\n",
      "10 yoyos for tract,wedge,wedgePop,r= 1404 3 115768.16768367618 1.1054\n",
      "10 yoyos for tract,wedge,wedgePop,r= 1404 3 253950.96093476753 1.2157\n",
      "10 yoyos for tract,wedge,wedgePop,r= 1404 3 365749.37873190426 1.2708\n",
      "11 yoyos for tract,wedge,wedgePop,r= 1404 3 420758.5928565711 1.2983\n",
      "11 yoyos for tract,wedge,wedgePop,r= 1404 3 392988.47461556765 1.2845\n",
      "12 yoyos for tract,wedge,wedgePop,r= 1404 3 379696.2688983922 1.2777\n",
      "we have 2 non-opposing shorted wedges for tract no 1407\n",
      "we have 2 non-opposing shorted wedges for tract no 1412\n",
      "we have 2 non-opposing shorted wedges for tract no 1414\n",
      "I am working on tract number 1420 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1425\n",
      "we have 2 non-opposing shorted wedges for tract no 1435\n",
      "we have 2 non-opposing shorted wedges for tract no 1438\n",
      "we have 2 non-opposing shorted wedges for tract no 1439\n",
      "I am working on tract number 1440 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1440\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1456 4.0 0 90.0 0.722 234161.4\n",
      "I am working on tract number 1460 of 3168 tracts\n",
      "I am working on tract number 1480 of 3168 tracts\n",
      "I am working on tract number 1500 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1516\n",
      "I am working on tract number 1520 of 3168 tracts\n",
      "I am working on tract number 1540 of 3168 tracts\n",
      "I am working on tract number 1560 of 3168 tracts\n",
      "I am working on tract number 1580 of 3168 tracts\n",
      "I am working on tract number 1600 of 3168 tracts\n",
      "I am working on tract number 1620 of 3168 tracts\n",
      "I am working on tract number 1640 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1655\n",
      "I am working on tract number 1660 of 3168 tracts\n",
      "I am working on tract number 1680 of 3168 tracts\n",
      "I am working on tract number 1700 of 3168 tracts\n",
      "I am working on tract number 1720 of 3168 tracts\n",
      "I am working on tract number 1740 of 3168 tracts\n",
      "7 yoyos for tract,wedge,wedgePop,r= 1747 0 449603.89110316837 0.8548\n",
      "8 yoyos for tract,wedge,wedgePop,r= 1747 0 29142.219205548347 0.4274\n",
      "9 yoyos for tract,wedge,wedgePop,r= 1747 0 449602.38172954274 0.8547\n",
      "9 yoyos for tract,wedge,wedgePop,r= 1747 0 247464.6552881914 0.6411\n",
      "10 yoyos for tract,wedge,wedgePop,r= 1747 0 64691.92288594786 0.5342\n",
      "10 yoyos for tract,wedge,wedgePop,r= 1747 0 142198.3912613665 0.5877\n",
      "10 yoyos for tract,wedge,wedgePop,r= 1747 0 192323.29679723503 0.6144\n",
      "11 yoyos for tract,wedge,wedgePop,r= 1747 0 219301.64991009777 0.6277\n",
      "11 yoyos for tract,wedge,wedgePop,r= 1747 0 205413.14825325442 0.621\n",
      "I am working on tract number 1760 of 3168 tracts\n",
      "I am working on tract number 1780 of 3168 tracts\n",
      "I am working on tract number 1800 of 3168 tracts\n",
      "I am working on tract number 1820 of 3168 tracts\n",
      "I am working on tract number 1840 of 3168 tracts\n",
      "I am working on tract number 1860 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1861 4.0 1 90.0 1.0696 207640.2\n",
      "I am working on tract number 1880 of 3168 tracts\n",
      "I am working on tract number 1900 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1911\n",
      "I am working on tract number 1920 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1921 4.0 0 90.0 0.6961 328734.8\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1921 5.0 0 90.0 0.4595 328734.8\n",
      "I am working on tract number 1940 of 3168 tracts\n",
      "I am working on tract number 1960 of 3168 tracts\n",
      "I am working on tract number 1980 of 3168 tracts\n",
      "I am working on tract number 2000 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2006\n",
      "I am working on tract number 2020 of 3168 tracts\n",
      "I am working on tract number 2040 of 3168 tracts\n",
      "I am working on tract number 2060 of 3168 tracts\n",
      "I am working on tract number 2080 of 3168 tracts\n",
      "I am working on tract number 2100 of 3168 tracts\n",
      "I am working on tract number 2120 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2137\n",
      "we have 2 non-opposing shorted wedges for tract no 2138\n",
      "we have 2 non-opposing shorted wedges for tract no 2139\n",
      "I am working on tract number 2140 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2140\n",
      "we have 2 non-opposing shorted wedges for tract no 2141\n",
      "I am working on tract number 2160 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2170\n",
      "I am working on tract number 2180 of 3168 tracts\n",
      "I am working on tract number 2200 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2213\n",
      "we have 2 non-opposing shorted wedges for tract no 2216\n",
      "I am working on tract number 2220 of 3168 tracts\n",
      "I am working on tract number 2240 of 3168 tracts\n",
      "I am working on tract number 2260 of 3168 tracts\n",
      "I am working on tract number 2280 of 3168 tracts\n",
      "I am working on tract number 2300 of 3168 tracts\n",
      "I am working on tract number 2320 of 3168 tracts\n",
      "I am working on tract number 2340 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2341 6.0 1 90.0 2.782 330312.8\n",
      "I am working on tract number 2360 of 3168 tracts\n",
      "I am working on tract number 2380 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2383 6.0 1 66.0 0.5501 385379.2\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2383 7.0 1 66.0 0.5401 385379.2\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2383 8.0 1 66.0 0.5303 385379.2\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2383 9.0 1 66.0 0.5207 385379.2\n",
      "I am working on tract number 2400 of 3168 tracts\n",
      "I am working on tract number 2420 of 3168 tracts\n",
      "I am working on tract number 2440 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2451\n",
      "I am working on tract number 2460 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2460 2.0 3 90.0 0.5828 462707.3\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2460 5.0 0 90.0 0.6734 313365.2\n",
      "we have 2 non-opposing shorted wedges for tract no 2462\n",
      "we have 2 non-opposing shorted wedges for tract no 2471\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2475 3.0 0 90.0 0.3756 210125.9\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2475 4.0 0 90.0 0.3572 210125.9\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2475 5.0 0 90.0 0.3397 210125.9\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2475 6.0 0 90.0 0.3231 210125.9\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2475 7.0 0 90.0 0.3073 210125.9\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2475 8.0 0 90.0 0.2923 210125.9\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2475 9.0 0 90.0 0.278 210125.9\n",
      "I am working on tract number 2480 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2486 2.0 1 90.0 0.8267 217852.0\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2486 3.0 1 90.0 0.7649 217852.0\n",
      "we have 2 non-opposing shorted wedges for tract no 2492\n",
      "I am working on tract number 2500 of 3168 tracts\n",
      "I am working on tract number 2520 of 3168 tracts\n",
      "I am working on tract number 2540 of 3168 tracts\n",
      "I am working on tract number 2560 of 3168 tracts\n",
      "I am working on tract number 2580 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2583\n",
      "we have 2 non-opposing shorted wedges for tract no 2597\n",
      "I am working on tract number 2600 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2603\n",
      "we have 2 non-opposing shorted wedges for tract no 2604\n",
      "we have 2 non-opposing shorted wedges for tract no 2606\n",
      "we have 2 non-opposing shorted wedges for tract no 2607\n",
      "we have 2 non-opposing shorted wedges for tract no 2608\n",
      "I am working on tract number 2620 of 3168 tracts\n",
      "I am working on tract number 2640 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2655\n",
      "we have 2 non-opposing shorted wedges for tract no 2656\n",
      "we have 2 non-opposing shorted wedges for tract no 2657\n",
      "we have 2 non-opposing shorted wedges for tract no 2659\n",
      "I am working on tract number 2660 of 3168 tracts\n",
      "I am working on tract number 2680 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2693\n",
      "we have 2 non-opposing shorted wedges for tract no 2695\n",
      "we have 2 non-opposing shorted wedges for tract no 2696\n",
      "I am working on tract number 2700 of 3168 tracts\n",
      "I am working on tract number 2720 of 3168 tracts\n",
      "I am working on tract number 2740 of 3168 tracts\n",
      "I am working on tract number 2760 of 3168 tracts\n",
      "I am working on tract number 2780 of 3168 tracts\n",
      "7 yoyos for tract,wedge,wedgePop,r= 2790 3 631690.61489535 1.8025\n",
      "we have 2 non-opposing shorted wedges for tract no 2792\n",
      "I am working on tract number 2800 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2807\n",
      "I am working on tract number 2820 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2823\n",
      "we have 2 non-opposing shorted wedges for tract no 2824\n",
      "I am working on tract number 2840 of 3168 tracts\n",
      "I am working on tract number 2860 of 3168 tracts\n",
      "I am working on tract number 2880 of 3168 tracts\n",
      "I am working on tract number 2900 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2918 2.0 3 90.0 0.4924 209667.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2918 3.0 3 90.0 0.4691 209667.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2918 4.0 3 90.0 0.447 209667.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2918 5.0 3 90.0 0.4258 209667.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2918 6.0 3 90.0 0.4057 209667.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2918 7.0 3 90.0 0.3865 209667.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2918 8.0 3 90.0 0.3682 209667.4\n",
      "I am working on tract number 2920 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2927 4.0 1 36.0 1.2485 720384.9\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2927 9.0 1 36.0 1.1947 720384.9\n",
      "I am working on tract number 2940 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2955\n",
      "I am working on tract number 2960 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2969\n",
      "I am working on tract number 2980 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2981 6.0 1 36.0 1.7185 759111.3\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2981 7.0 1 36.0 1.6639 759111.3\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2981 8.0 1 36.0 1.611 759111.3\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2981 9.0 1 36.0 1.5598 759111.3\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2981 14.0 1 36.0 1.5626 759111.3\n",
      "7 yoyos for tract,wedge,wedgePop,r= 2981 1 759111.3345042676 1.5918\n",
      "we have 2 non-opposing shorted wedges for tract no 2982\n",
      "I am working on tract number 3000 of 3168 tracts\n",
      "I am working on tract number 3020 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 3031\n",
      "I am working on tract number 3040 of 3168 tracts\n",
      "I am working on tract number 3060 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 3075\n",
      "I am working on tract number 3080 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 3093 2.0 1 90.0 0.5584 374117.7\n",
      "I am working on tract number 3100 of 3168 tracts\n",
      "I am working on tract number 3120 of 3168 tracts\n",
      "I am working on tract number 3140 of 3168 tracts\n",
      "I am working on tract number 3160 of 3168 tracts\n",
      "Sum of weights over all precinct home districts should have been 1.000, but was  1.0000118982535453\n",
      "Average and max number of wedgePop loops per tract were:  6.841540404040404 26.0\n",
      "min,average,max of Home District areas were:  0.0 0.7833374167075176 2.77961185761946\n",
      "calculated statewide vote was 0.5434971397186973, should have been 0.5407669764770272\n",
      "calcd statewide Hispanic pop was 0.033678737679494204, should have been 0.03649478548175945\n",
      "calcd statewide Black pop was 0.10571766248946117, should have been 0.11790450067020998\n",
      "fraction of HDs that with altered wedge angles near boundaries =  0.413510101010101\n"
     ]
    }
   ],
   "source": [
    "#3/7 - 3/10/22 - linear wideAngle, short the opposing wedgePop to match first shorted wedge (see nonper toy)\n",
    "# Bisect for yoyo > 3, precinct calcs after wedges finalized.  More aggressive Euler gain\n",
    "#minTractPop = 10  #this is set in a prior block\n",
    "pi=3.1415926536\n",
    "nWedges = 4  #number of wedges per home district polygon  \n",
    "avgWedgeAngle = 2*pi / nWedges\n",
    "wedgeTriAR = [math.sin(pi/nWedges)*math.cos(pi/nWedges)]*nWedges  #wedge triangle area ratio (= area / r*r)\n",
    "angle = [0.]*nWedges\n",
    "angle2 = [0.]*nWedges\n",
    "pt1 = [Point(0,0)]*nWedges  #these four define the polygon wedge for a growing home district\n",
    "pt2 = [Point(0,0)]*nWedges\n",
    "pt3 = [Point(0,0)]*nWedges\n",
    "pt4 = [Point(0,0)]*nWedges\n",
    "oldR = [0.]*nWedges  #wedge radius from previous loop\n",
    "# guessedR = [0.]*nWedges  #obsolete; was wedge radius if we extrapolate from population density of most recent wedge piece\n",
    "printPoly = [Polygon([(0,0),(0,1),(1,1)])]*nWedges #for debugging\n",
    "wedgePop = [0.]*nWedges\n",
    "tractLoopCounter = [0.]* nTracts  #this tracks how many loops per tract to get to target wedge Pop\n",
    "nearEdge = [0.]* nTracts   #not yet implemented; this will flag tracts near map edge for reprocessing\n",
    "tractUse = [0.] * nTracts  #this will store how much we use this tract in ALL HD's vs. expectation\n",
    "precinctUse = [0.] * nPrecincts   #same, but for each precinct / VTD\n",
    "loopTractUse = [0.] * nTracts  #same as above two, but only for the current loop / tract\n",
    "loopPrecinctUse = [0.] * nPrecincts\n",
    "HDvPop = [0.]*nTracts\n",
    "HDvGOP = [0.]*nTracts  #GOP lean of each tract's \"home district\"\n",
    "HDvBlack = [0.]*nTracts\n",
    "HDvHisp = [0.]*nTracts #pct Hispanic by home district\n",
    "HDweight = [0.]*nTracts  #relative weight of each district.  In absence of splits, will equal precinct pop\n",
    "HDarea = [0.]*nTracts  #geographical area of each home district\n",
    "HDradius = [[0.]*nWedges for t in range(nTracts)] #final wedge length for each Home District wedge\n",
    "HDangle = [[0.]*nWedges for t in range(nTracts)] #final included angle for each HD wedge\n",
    "angle0 = [-999.] * nTracts  #orientation of 0th wedge.  Random except re-oriented if we are near-boundary\n",
    "toler = 0.005  #adjustable - fractional slop in district population.  normally 0.01, to be reduced to 0.005\n",
    "tolerPop = toler * avgDistrictPop  #absolute slop in district pop\n",
    "nLoopPrint = 30  #at this loop number, we alert user of problem\n",
    "nGiveUp = 40  #we punt after this many loops\n",
    "nLoopSuperPrint = nGiveUp - 2 # at this loop number, we output wedge growth visuals\n",
    "wrongPop = [0.]*nTracts\n",
    "normalGain = 0.8  #adjustable - a bit less than 1.0 for stability, how far we step relative to expected perfect guess\n",
    "EulerGain = 1.5 #if we hit empty land, gain more aggressively to get through it\n",
    "#yoyoFactor = 0.3 #rate of reduction in gain as solver continues to yoyo in solving a wedge  #not currently used ***\n",
    "globalMax_dr = (MAP.area/nDistricts) ** 0.5  #put a reasonable upper limit on wedge radial growth step size\n",
    "tractPrintInterval = 20  #for tracking progress\n",
    "minTractArea = 0.00001 * MAP.area / nTracts  #failsafe for later div-by-zero\n",
    "homePopDensity = avgGridDensity  #seed this\n",
    "didWeRestart = [0] * nTracts  #will flag if we adjusted wedge angles due to a single shorted wedge\n",
    "maxAngleRatio = 1.9  #for tightening tract weighting near boundaries  #NEW 3/7/22\n",
    "levelL = 0.36 #sqrt(pop) for angle=std  These two control distortion in wedge angles relative to wedgePop shortness\n",
    "minWedgePop = [avgDistrictPop/nWedges] * nTracts  #wedge pop for wedge facing boundary (for tracts near boundaries)\n",
    "maxWideAngle = 0.8 * pi  #adjustable parameter.  (avoid wedges too close to half a pie\n",
    "\n",
    "for t in range(nTracts) :  #(nTracts):  #loop on each tract.  Start by resetting stats\n",
    "    gain = normalGain  #in case last precinct had convergence problems\n",
    "    if (t % tractPrintInterval) == 0 : \n",
    "        print(\"I am working on tract number {0} of {1} tracts\".format(t,nTracts) )\n",
    "    tractLoopCounter[t] = 0.  #for stability stats, will track how many times we need to loop for each tract\n",
    "    # isActiveG = [0]*nGrids  #resets whether each grid is relevant to this tract (not used; see alt grid turn-on method)\n",
    "    if (tractArea[t] > minTractArea) :  #too lazy to indent everything.  We'll catch zero tractArea later\n",
    "        homePopDensity = tractPop[t]/tractArea[t]  #temporary - estimate the local density for initial step\n",
    "    tractCP = Point(tractGeom[t].centroid.x,tractGeom[t].centroid.y)  #shorthand for centroid of each tract\n",
    "    for nG in range(nGrids):\n",
    "        if gridGeom[nG].contains(tractCP) :  #which grid contains the centroid of this tract?  Turn it on!\n",
    "            # isActiveG[nG] = 1  #I don't think I use this\n",
    "            homeGridDensity = gridDensity[nG]\n",
    "    maxStartDensity = max(homePopDensity,homeGridDensity)\n",
    "    minR = (avgDistrictPop / maxStartDensity / pi)**0.5   # conservative estimated radius of this tract's district\n",
    "    tinyR = 0.01 * minR   #ensures we start with small, but not infinitesimal wedge populations\n",
    "    angle0[t] = random.uniform(0,2.*pi)  #imparts random orientation to our starting wedge\n",
    "    loopTractUse = [0.]*nTracts  #this and below help us reset tract n precinct use after a wedge reset\n",
    "    loopPrecinctUse = [0.]*nPrecincts\n",
    "    # ***GROW WEDGES SIMULTANEOUSLY via ARRAYS, SO WE CAN REACT ON FLY TO BOUNDARY STOPS\n",
    "    HDpop = 0.  #running total of this tract's \"home district\" population\n",
    "    nActiveWedges = nWedges #active wedges have not run over boudnary\n",
    "    targetWedgePop = [avgDistrictPop / nWedges]*nWedges  #at beginning, split districtPop equally among wedges\n",
    "    #latestWedgeDensity = [0.]*nWedges  #stop using # pop'n density of the wedge piece we just added or subtracted\n",
    "    wedgePop = [0.]*nWedges\n",
    "    oldWedgePop = [0.]*nWedges  #wedge pop from previous round (needed for NR projection)\n",
    "    wedgePopGap = [0.]*nWedges\n",
    "    isOverEdge = [0] *nWedges #each wedge is still fully inside map boundary\n",
    "    isSatisfied = [0] * nWedges #wedges close enough to target are not improved upon\n",
    "    yoyoCount = [0] * nWedges #tracks how many times we've reversed this wedge's growth vs. shrink at current wPop target\n",
    "    wedgeMaxR = [0.] * nWedges #will track the largest radius this wedge has seen (to cap yoyo bisection step)\n",
    "    wedgeAngle = [avgWedgeAngle] * nWedges #reset to equi-angle when starting each tract    \n",
    "    currentR = [0.]*nWedges\n",
    "    old_dr = [0.]*nWedges\n",
    "    wedgeStop = 0  #obsolete? this will flag if we need to rejigger oldR when we stopped an over-boundary wedge\n",
    "    for nW in range(nWedges):\n",
    "        currentR[nW] = tinyR  #each wedge starts as a tiny triangle of this radius\n",
    "        old_dr[nW] = currentR[nW] #this will track the last radial step (to help convergence)\n",
    "    oldR = [0.]*nWedges   #for remembering last loop's wedge radius\n",
    "    max_dr = [globalMax_dr]*nWedges  #reset max possible positive radial step size\n",
    "    for nW in range(nWedges) :  #this loop: set up tiny wedges in each direction to seed each wedge loop\n",
    "        angle[nW] = (nW-0.5)*wedgeAngle[nW]+angle0[t]   #local variable for orientation of START of wedge\n",
    "        angle2[nW] = angle[nW]+wedgeAngle[nW]      #local angle for clockwise END of wedge\n",
    "        pt1[nW] = tractCP\n",
    "        pt2[nW] = Point(tractCP.x+currentR[nW]*math.cos(angle[nW]),  tractCP.y+currentR[nW]*math.sin(angle[nW]) )\n",
    "        pt3[nW] = Point(tractCP.x+currentR[nW]*math.cos(angle2[nW]), tractCP.y+currentR[nW]*math.sin(angle2[nW]) )\n",
    "        wedgePoly = Polygon([pt1[nW], pt2[nW], pt3[nW] ]) #build a tiny starter wedge triangle\n",
    "        wedgePop[nW] = tractPop[t]* wedgePoly.area/max(tractArea[t],minTractArea)  #max prevents rare div-by-zero\n",
    "    HDpop = np.sum(wedgePop)\n",
    "    if (tractPop[t] < minTractPop or tractArea[t] == 0 or isSkippedTract[t] == 1):\n",
    "        #go directly to jail, do not pass Go, this tract doesn't count\n",
    "        HDpop = avgDistrictPop  #white lie to kick us out of loop\n",
    "    while abs (HDpop - avgDistrictPop) > tolerPop :  #until we've grown the home district to the right size...\n",
    "        sumWedgePopGapChange = 0  #this will total wedge pops that fall short of expectations (when over boundary)\n",
    "        for nW in range(nWedges) :  #for each wedge, we'll build to gain pop or shrink to lose population ...\n",
    "            neededWedgePop = targetWedgePop[nW] - wedgePop[nW]\n",
    "            isSatisfied[nW] = 0  #default in case target changed last loop.  We'll check immediately below\n",
    "            if abs(neededWedgePop/targetWedgePop[nW]) < 0.5*toler :  #is this wedge close enough to stop iterating on it?\n",
    "                isSatisfied[nW] = 1\n",
    "            if isOverEdge[nW] == 0 and isSatisfied[nW] == 0:   #we skip over-boundary and near-perfect wedges\n",
    "                wedgePopDelta = wedgePop[nW] - oldWedgePop[nW]  #how much wedgePop gained in last loop\n",
    "                if (wedgePopDelta == 0): #our last wedge change was in an empty area (desert or off map)\n",
    "                    gainAdjust = EulerGain/gain  #Euler method often over-cautious at map edges or in sparse areas\n",
    "                    guessedRsquared = currentR[nW]*currentR[nW] * targetWedgePop[nW] / wedgePop[nW]  #Euler guess\n",
    "                    # can't use Newton-Raphson since last dy was zero, use Euler instead\n",
    "                    print(\"we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop\",t,tractLoopCounter[t],\n",
    "                          nW, round(180./pi*wedgeAngle[nW],1),round(currentR[nW],4),round(wedgePop[nW],1))\n",
    "                else: #use N-R estimation\n",
    "                    gainAdjust = 1.0\n",
    "                    R2delta = currentR[nW]*currentR[nW] - oldR[nW]*oldR[nW]  #this and below are run/rise of current slope\n",
    "                    guessedRsquared = currentR[nW]*currentR[nW] + R2delta / wedgePopDelta * neededWedgePop\n",
    "                    \n",
    "                guessedRsquared = max( guessedRsquared, 0. ) #minimum guardrail\n",
    "                guessed_dr = guessedRsquared ** 0.5 - currentR[nW]  #best guess for wedge radius change\n",
    "                #gain = max(0.3,normalGain ** (1. + yoyoFactor * yoyoCount[nW]))  #obsolete; using bisect\n",
    "                dr = gain * gainAdjust * guessed_dr   #gain typically ~0.8 for stability\n",
    "                dr = max( -0.5*currentR[nW],min(dr,max_dr[nW]) )  #apply min and max guardrails to wedge radius change\n",
    "                \n",
    "                if np.sign(dr) != np.sign(old_dr[nW]) :  #are we yoyoing? How many times?\n",
    "                    yoyoCount[nW] += 1\n",
    "                if yoyoCount[nW] > 3 and yoyoCount[nW] <= 6 :\n",
    "                    wedgeMaxR[nW] = max(wedgeMaxR[nW],currentR[nW]) #will track largest R in yoyo cycle\n",
    "                    max_dr[nW] = 2.*wedgeMaxR[nW]  #this will now store a reasonable max bisection step size\n",
    "                if yoyoCount[nW] > 6 :  #switch to bisection method; too many yo-yo's\n",
    "                    print(yoyoCount[nW],\"yoyos for tract,wedge,wedgePop,r=\",t,nW,wedgePop[nW],round(currentR[nW],4) )\n",
    "                    max_dr[nW] = 0.5 * max_dr[nW] #we are now bisecting ...\n",
    "                    if(neededWedgePop < 0):\n",
    "                        dr = max(-1.*max_dr[nW], -0.5*currentR[nW])  #reduce wedge size\n",
    "                    else:\n",
    "                        dr = max_dr[nW]  #increase wedge size\n",
    "                old_dr[nW] = dr  #these three lines -- save current as old values for next loop\n",
    "                oldR[nW] = currentR[nW]\n",
    "                oldWedgePop[nW] = wedgePop[nW]\n",
    "                if dr > 0. :  #we are growing a wedge trapezoid piece \n",
    "                    outerR = currentR[nW] + dr\n",
    "                    innerR = currentR[nW]\n",
    "                    currentR[nW] = outerR    #for next loop around\n",
    "                else:    #this wedge trapezoid piece will be SUBTRACTED from current wedge\n",
    "                    outerR = currentR[nW]\n",
    "                    innerR = currentR[nW] + dr  #remember, dr is negative here\n",
    "                    currentR[nW] = innerR             #for next loop around\n",
    "                #now, describe the new wedge to probe for precinct intersections ...\n",
    "                pt1[nW] = Point(tractCP.x+innerR*math.cos(angle[nW]), tractCP.y+innerR*math.sin(angle[nW]) )\n",
    "                pt2[nW] = Point(tractCP.x+outerR*math.cos(angle[nW]), tractCP.y+outerR*math.sin(angle[nW]) )\n",
    "                pt3[nW] = Point(tractCP.x+outerR*math.cos(angle2[nW]),tractCP.y+outerR*math.sin(angle2[nW]) )\n",
    "                pt4[nW] = Point(tractCP.x+innerR*math.cos(angle2[nW]),tractCP.y+innerR*math.sin(angle2[nW]) )\n",
    "                wedgePoly = Polygon([pt1[nW], pt2[nW], pt3[nW],pt4[nW]])  #true for wedge add-on or to-be-trimmed\n",
    "                \n",
    "                printPoly[nW] = wedgePoly  #for debugging\n",
    "                latestWedgePop = 0.  #for the new piece, not the entire triangle\n",
    "                usedTract = [0]*nTracts  #rezero lists of tracts and precincts that could straddle multiple grids\n",
    "                usedPrecinct = [0]*nPrecincts\n",
    "                for nG in range(nGrids) :  # loop over ACTIVE grids to look for intersecting tracts\n",
    "                    gridIntersxn = gridGeom[nG].intersection(wedgePoly)\n",
    "                    if (gridIntersxn.area > 0) :  #this grid is RELEVANT to this wedge\n",
    "                        for tt in range(nGridTracts[nG]) : #look for intersxns with all tracts in this grid\n",
    "                            nTT = gridTractNo[nG][tt] #shorthand for this tract's global tract no\n",
    "                            if(usedTract[nTT] == 0) :  #Did we not already look at this tract in another grid list?\n",
    "                                usedTract[nTT] = 1  #well, now we have!  Probe intersection with wedge\n",
    "                                overlap = tractGeom[nTT].intersection(wedgePoly).area\n",
    "                                if overlap > 0 :\n",
    "                                    fracArea = overlap/tractArea[nTT]\n",
    "                                    latestWedgePop  += fracArea*tractPop[nTT]  #always positive (used in density calc)\n",
    "                                    loopTractUse[nTT] += np.sign(dr)*overlap/tractArea[nTT] * tractPop[t]/avgDistrictPop\n",
    "                        # found all possible tract overlaps with this increment / decrement to this wedge.\n",
    "                        \n",
    "                wedgePop[nW] += np.sign(dr)*latestWedgePop  #for full triangle, based on this latest piece\n",
    "                # Now, flag if we're beyond boundary\n",
    "                if wedgePop[nW] < targetWedgePop[nW] : #if growing, confirm we're not beyond MAP boundary\n",
    "                    leadingEdge = LineString([pt2[nW],pt3[nW]])\n",
    "                    if leadingEdge.intersects(MAP) :  #still room to grow in part of edge, keep going\n",
    "                        gerrymandering = \"evil\"  #it had to be said\n",
    "                    else:  #this wedge is fully beyond the map. give up on more map intersection\n",
    "                        isOverEdge[nW] = 1\n",
    "                        shortedWedge = nW  #ID'ing highest numbered wedge that got shorted by the boundary in this loop\n",
    "                        oldWedgePopGap = wedgePopGap[nW]\n",
    "                        wedgePopGap[nW] = targetWedgePop[nW] - wedgePop[nW]  #how far this wedge's pop is below its target\n",
    "                        nActiveWedges -= 1  #a few lines below, we will adjust other wedge's targets\n",
    "                        sumWedgePopGapChange += wedgePopGap[nW] - oldWedgePopGap\n",
    "                        if (nActiveWedges == 0) : #we're doomed, somehow all wedges are short and off map\n",
    "                            print(\"PUNT! no more active wedges for tract, loop =\",t,tractLoopCounter[t] )\n",
    "                            tractLoopCounter[t] = nGiveUp + 1  #PUNT !!!\n",
    "                            \n",
    "                        max_dr = [globalMax_dr]*nWedges   #allow other wedges to take big steps again to catch up\n",
    "                        yoyoCount = [0] * nWedges  #go back to original gains on ALL active wedges\n",
    "                   \n",
    "        # end of nW loop to adjust all wedge populations by growing or trimming wedges, IDing over-edge wedges\n",
    "        tractLoopCounter[t] +=1   # still looping on home district Pop.\n",
    "        nReceivingWedges = nActiveWedges\n",
    "        oppFlag = 0\n",
    "        if targetWedgePop[int(nWedges/2)] < 0.99 * avgDistrictPop/float(nWedges): #is opposite wedge restricted?\n",
    "            oppFlag = 1\n",
    "            nReceivingWedges -= 1-isOverEdge[int(nWedges/2)]  #if yes, don't count opposite wedge as a receiver\n",
    "        if nReceivingWedges == 0: #rarely, the opposite wedge is the only active one\n",
    "            for nWW in range(nWedges): #in this case, we allow the opposite wedge to pick up the slack\n",
    "                targetWedgePop[nWW] += sumWedgePopGapChange/max(1.,float(nReceivingWedges) )\n",
    "        else: #if the opp wedge has a ceiling wedgePopTarget, distribute wedgePopGap to other active wedges\n",
    "            for nWW in range(nWedges):  #time to make adjustments in target wedge pops based on boundary fails\n",
    "                if nWW != int(nWedges/2) or oppFlag == 0 :  #excluding opposite wedge as a receiver\n",
    "                    targetWedgePop[nWW] += sumWedgePopGapChange/float(nReceivingWedges)\n",
    "\n",
    "        # *** NEW 1/19/22 CODE TO ADJUST WEDGE ANGLES WHEN A BOUNDARY ENCOUNTERED\n",
    "        if (nActiveWedges == nWedges or nActiveWedges < nWedges - 2\n",
    "           or didWeRestart[t] == 1) :  #0 or 3+ over-boundary short wedges, or we've already adjusted wedge angles once\n",
    "            HDpop = np.sum(wedgePop) #Keep going with normal wedge growth and trim process\n",
    "        else :  # 1 OR 2 SHORTED WEDGES.  MAY WANT TO ALTER WEDGE ANGLES\n",
    "            didWeRestart[t] = 1  #to ensure we adjust wedge angles and target wedgePops at most once per tract\n",
    "            if (nActiveWedges == nWedges - 2) :  #exactly two wedges got shorted in this loop -- are they opposing?\n",
    "                oppW = int( (shortedWedge + nWedges/2) % nWedges)  #the index of wedge opposite the last shorted wedge\n",
    "                if (isOverEdge[oppW] == 0) :\n",
    "                    print(\"we have 2 non-opposing shorted wedges for tract no\",t)\n",
    "                    totalLiveAngle = 2.*pi - np.sum(isOverEdge)*avgWedgeAngle  #avail angle to divvy among live wedges  \n",
    "                    for nW in range (nWedges) : #Decrease wedge angles opposite shorted wedges via a complex weighting\n",
    "                        if isOverEdge[nW] == 0 :\n",
    "                            oppW = int( (nW + nWedges/2) % nWedges) \n",
    "                            angleWeight = (np.sum(wedgePopGap)-wedgePopGap[oppW])/np.sum(wedgePopGap)/(nActiveWedges-1)\n",
    "                            wedgeAngle[nW] = angleWeight * totalLiveAngle  \n",
    "                else : #shorted wedges ARE opposing\n",
    "                    print(\"we have 2 OPPOSING shorted wedges for tract no\",t) # no wedge-angle adjustment in this case\n",
    "                    #wedgeAngle=[avgWedgeAngle]*nWedges  #comment this out, no change\n",
    "            else: # a single shorted wedge (over boundary).  COMPLETELY RESTART wedge growth process\n",
    "                shortW = shortedWedge #Next dozen lines: convoluted code to find angle to closest boundary point\n",
    "                #print(\"1 wedge over map boundary for tract\",t,\"at loop, wedgePop\",tractLoopCounter[t],wedgePop[shortW] )\n",
    "                shortedPoly = Polygon([tractCP, pt2[shortW],pt3[shortW] ])\n",
    "                MAPedge = shortedPoly.intersection(MAP.exterior) #true state boundary line where wedge crossed it\n",
    "                minDistance = max(tractCP.distance(MAPedge),tinyR)  #closest distance to edge where wedge hit the boundary\n",
    "                edgeCircle = tractCP.buffer(1.01*minDistance)  #build a circle a little bigger than this distance\n",
    "                #  1.001 is not big enough; will occasionally not intersect\n",
    "                closeArea = edgeCircle.intersection(MAPedge)\n",
    "                counter = 0.\n",
    "                maxCounter = 10. #give up after 10 tries\n",
    "                while closeArea.is_empty :  # protect against missing the map boundary somehow\n",
    "                    print(\"need to widen edge circle beyond\",minDistance, \"for tract (x,y)=(\",tractCP.x,tractCP.y)\n",
    "                    minDistance = minDistance * 1.1\n",
    "                    edgeCircle = tractCP.buffer(minDistance)  #widen the circle\n",
    "                    closeArea = edgeCircle.intersection(MAPedge)\n",
    "                    counter += 1\n",
    "                    if counter >= maxCounter: #not finding map edge intersection.  Try another way\n",
    "                        print(\"did not find boundary with circle approach.  Brute-force it.\")\n",
    "                        minDistance = tractCP.distance(MAP.exterior)\n",
    "                        edgeCircle = tractCP.buffer(1.01*minDistance)\n",
    "                        closeArea = edgeCircle.intersection(MAP.exterior)                        \n",
    "            \n",
    "                closePoint = closeArea.centroid  # this is a point very close to the closest beeline from tract to map edge\n",
    "                #print(closePoint,tractCP, \"are boundary point and tract center point\")\n",
    "                x1 = closePoint.x\n",
    "                x2 = tractCP.x  #debugging\n",
    "                dx = closePoint.x - tractCP.x\n",
    "                dy = closePoint.y - tractCP.y\n",
    "                exitAngle = pi/2. * np.sign(dy)  #default in case dx=0\n",
    "                if (dx != 0 ):\n",
    "                    exitAngle = math.atan(dy/dx)  #this is the angle from the x-axis to the exit beeline\n",
    "                    if dx < 0 :  #use complementary atan solution; boundary is west of tract centroid\n",
    "                        exitAngle = pi + exitAngle\n",
    "                angle0[t] = exitAngle # this reorients 0th wedge to face boundary's closest point               \n",
    "                # New 1/23/22 - let's estimate wedgePopGap at ideal orientation, normal angle   # ****************\n",
    "                wedgeAngle1 = exitAngle - 0.5*avgWedgeAngle\n",
    "                wedgeAngle2 = exitAngle + 0.5*avgWedgeAngle\n",
    "                maxR = max(stateWidth,stateHeight) #ensuring we make a big enough wedge\n",
    "                wedgePt1 = tractCP\n",
    "                wedgePt2 = Point(tractCP.x+maxR*math.cos(wedgeAngle1),  tractCP.y+maxR*math.sin(wedgeAngle1) )\n",
    "                wedgePt3 = Point(tractCP.x+maxR*math.cos(wedgeAngle2), tractCP.y+maxR*math.sin(wedgeAngle2) )\n",
    "                wedgePoly = Polygon([ wedgePt1, wedgePt2, wedgePt3 ])\n",
    "                minWedgePop[t] = 0. #the wedgePop of the shorted wedge if we re-orient but don't adjust angles\n",
    "                usedTract = [0]*nTracts  #rezero lists of tracts and precincts that could straddle multiple grids\n",
    "                for nG in range(nGrids) :  # loop over ACTIVE grids to look for intersecting tracts\n",
    "                    gridIntersxn = gridGeom[nG].intersection(wedgePoly)\n",
    "                    if (gridIntersxn.area > 0) :  #this grid is RELEVANT to this wedge\n",
    "                        for tt in range(nGridTracts[nG]) : #look for intersxns with all tracts in this grid\n",
    "                            nTT = gridTractNo[nG][tt] #shorthand for this tract's global tract no\n",
    "                            if(usedTract[nTT] == 0) :  #Did we not already look at this tract in another grid list?\n",
    "                                usedTract[nTT] = 1  #well, now we have!  Probe intersection with wedge\n",
    "                                overlap = tractGeom[nTT].intersection(wedgePoly).area\n",
    "                                if overlap > 0 :\n",
    "                                    fracArea = overlap/tractArea[nTT]\n",
    "                                    minWedgePop[t]  += fracArea*tractPop[nTT]  #always positive (used in density calc)\n",
    "                #print(\"the minimum shorted Wedge Pop for tract {0} is {1}\".format(t,minWedgePop[t]) )  #debug\n",
    "                #printAngle[t] = round(exitAngle*180./pi,4) #for debugging\n",
    "                printDist = round(minDistance,4)\n",
    "                #print(t,\"(\",tractCP.x,tractCP.y,\")\",printAngle,printDist,\"t,tract(x,y),exitAngle,dist\")\n",
    "                # ********************************************************************\n",
    "                # printWedgePopGap[t] = wedgePopGap[shortW]\n",
    "                #now, we \"squish the square\" based on how close we are to boundary - see offline documentation\n",
    "                equivL = (4.*minWedgePop[t] / avgDistrictPop)**0.5  #non-dimensional centroid-boundary distance\n",
    "                wideAngle = avgWedgeAngle*max(  1,( 1.+(maxAngleRatio-1.)*(levelL - equivL)/(levelL - 0.) )  )\n",
    "                wideAngle = min(maxWideAngle, wideAngle)  #prevent too wide of an angle (half-pie)\n",
    "                #HERE, WE ADJUST all wedge ANGLES\n",
    "                wideAngle = min(wideAngle, maxWideAngle*pi) #set an upper limit to avoid gaping wedges\n",
    "                thinAngle = (2.*pi - 2.*wideAngle)/(nWedges - 2.)  #other wedges equally angle-compressed\n",
    "                for nW in range(nWedges) :\n",
    "                    if (nW == 0 or nW == int(nWedges/2) ) : #assign these two as shorted wedge and its opposite\n",
    "                        wedgeAngle[nW] = wideAngle\n",
    "                    else :\n",
    "                        wedgeAngle[nW] = thinAngle\n",
    "                #** COMPLETELY RESTART WEDGE GROWTH PROCESS FROM INITIAL PIZZA SLICES, NOW RE-ORIENTED\n",
    "                loopTractUse = [0.] * nTracts  # reset as we are starting over\n",
    "                loopPrecinctUse = [0.]* nPrecincts\n",
    "                HDpop = 0.\n",
    "                nActiveWedges = nWedges\n",
    "                # NEW 3/10/22 - we not only squish the angles, we short the target for the wedge opposite boundary\n",
    "                oppWedgeExpectedPop = minWedgePop[t] * math.tan(0.5*wideAngle)/math.tan(pi/nWedges)  #prediction for new wedge0's pop\n",
    "                oppWedgeExpectedPop = min(oppWedgeExpectedPop,avgDistrictPop/nWedges) #not needed, but just in case...\n",
    "                for nW in range(nWedges):\n",
    "                    if nW == int(nWedges/2):\n",
    "                        targetWedgePop[nW] = oppWedgeExpectedPop\n",
    "                    else:  #NOTE: we don't mess w wedge0's target.  When it shorts again, we will adjust other wedge's tgts\n",
    "                        targetWedgePop[nW] =(avgDistrictPop - oppWedgeExpectedPop)/float(nWedges-1)\n",
    "                # *** END OF 3/10/22 MODIFICATION\n",
    "                oldR = [0.]*nWedges   #for remembering last loop's wedge radius  \n",
    "                currentR = [tinyR]*nWedges                \n",
    "                old_dr = [tinyR]*nWedges  #this will track the last radial step (to help convergence)\n",
    "                max_dr = [globalMax_dr]*nWedges  #reset max step size\n",
    "                wedgePop = [0.]*nWedges\n",
    "                oldWedgePop = [0.]*nWedges #wedge pop from previous round\n",
    "                wedgePopGap = [0.]*nWedges\n",
    "                isOverEdge = [0] *nWedges\n",
    "                isSatisfied = [0] *nWedges\n",
    "                yoyoCount = [0] *nWedges #just in case we missed this earlier\n",
    "                wedgeMaxR = [0.] * nWedges #resetting\n",
    "                angle[0] = angle0[t] - 0.5*wideAngle  #the 0th wedge always faces the boundary\n",
    "                angle2[0] = angle[0] + wedgeAngle[0]\n",
    "                for nW in range(nWedges) :\n",
    "                    if (nW == 0):\n",
    "                        angle[nW] = angle0[t] - 0.5*wideAngle  #we have to start somewhere :-)\n",
    "                    else :\n",
    "                        angle[nW] = angle2[nW-1]\n",
    "                    angle2[nW] = angle[nW]+wedgeAngle[nW]      \n",
    "                    pt1[nW] = tractCP\n",
    "                    pt2[nW] = Point(tractCP.x+tinyR*math.cos(angle[nW]),  tractCP.y+tinyR*math.sin(angle[nW]) )\n",
    "                    pt3[nW] = Point(tractCP.x+tinyR*math.cos(angle2[nW]), tractCP.y+tinyR*math.sin(angle2[nW]) )\n",
    "                    wedgePoly = Polygon([pt1[nW], pt2[nW], pt3[nW] ])\n",
    "                    wedgePop[nW] = tractPop[t]* wedgePoly.area/max(tractArea[t],minTractArea)\n",
    "                HDpop = np.sum(wedgePop)   #** END OF RESTART BLOCK.  RE-ENTER MAIN LOOP FOR THIS TRACT\n",
    "                      \n",
    "        # **** BELOW IS TO CORRECT FOR NONCONVERGENCE *****\n",
    "        if (tractLoopCounter[t] > nLoopPrint):  #may be becoming unstable. Alert user,    #and (don't) reduce gain\n",
    "            strPop = str(round(HDpop,2))\n",
    "            strWdg = \"Overedge?\"\n",
    "            strSat = \"Satisfied?\"\n",
    "            strYoyo = \"yoyo?\"                \n",
    "            strTWP_dr = \"tWP,dr\"\n",
    "            for nWW in range(nWedges) :\n",
    "                strPop = strPop + \", \"+str(round(wedgePop[nWW],1) )\n",
    "                strWdg = strWdg +str(isOverEdge[nWW])+\", \"\n",
    "                strSat = strSat +str(isSatisfied[nWW])\n",
    "                strYoyo = strYoyo + str(yoyoCount[nWW])\n",
    "                strTWP_dr = strTWP_dr + \", \"+str(round(targetWedgePop[nWW],1) )+\",\"+str(round(old_dr[nWW],4) )\n",
    "            print(\"loop{0}, tr{1},wedgePops{2}, {3},{4},{5} \".format(tractLoopCounter[t],t,strPop,strWdg,strSat,strYoyo) )\n",
    "            print(\"   targetWP, latest drx4 are\",strTWP_dr)\n",
    "\n",
    "        if (tractLoopCounter[t] > nLoopSuperPrint) :\n",
    "            for nWW in range(nWedges):                \n",
    "                print(\"wedge no, currentR,oldWedgePop, wedgePop, overEdge?\",nWW,str(round(currentR[nWW],5)), \n",
    "                      str(round(oldWedgePop[nWW],4)), str(round(wedgePop[nWW],4)),isOverEdge[nWW])   #debug\n",
    "                x, y = printPoly[nWW].exterior.xy     #wedge debugging .....\n",
    "                plt.plot(x, y, c=(0.1, 0.2, 0.02+float(nWW)/nWedges) )\n",
    "            plt.show()\n",
    "        if(tractLoopCounter[t] >= nGiveUp):\n",
    "            print(\"I looped {0} times on tract {1}, giving up w pop {2}\".format(nGiveUp,t,HDpop) )\n",
    "            wrongPop[t] = HDpop  #this will flag this HD as triaged\n",
    "            HDpop = avgDistrictPop  #white lie to kick out of loop\n",
    "        # *** END OF TRIAGE FOR NONCONVERGENCE\n",
    "        \n",
    "    # END OF WHILE LOOP --> we are within tolerance of avgDistrictPop. Finalize this tract's Home District stats\n",
    "    for nTT in range (nTracts) :\n",
    "        tractUse[nTT] += loopTractUse[nTT]\n",
    "    totGOP = 0.\n",
    "    totVote = 0.\n",
    "    totVAP = 0.\n",
    "    totHisp = 0.\n",
    "    totBlack = 0.  #zero these out prior to summing over final wedges\n",
    "    usedTract = [0]*nTracts  #rezero lists of tracts and precincts that could straddle multiple grids\n",
    "    usedPrecinct = [0]*nPrecincts\n",
    "\n",
    "    if (tractPop[t] < minTractPop or tractArea[t] == 0 or isSkippedTract[t] == 1): \n",
    "        #we bypassed the big loop; this tract is inconsequential\n",
    "        HDvPop[t] = HDpop  #a white lie\n",
    "        HDweight[t] = 0.000001  #to suppress this in total stats\n",
    "    else :\n",
    "        HDvPop[t] = np.sum(wedgePop)\n",
    "        # HDvHisp[t] = np.sum(wedgeHisp)/np.sum(wedgePop)  #3/2/22 - move to final wedge calcs\n",
    "        # HDvBlack[t] = np.sum(wedgeBlack)/np.sum(wedgePop)  #3/2/22 - move to final wedge calcs\n",
    "        HDweight[t] = tractPop[t]/np.sum(tractPop)\n",
    "        nearEdge[t] = nWedges - nActiveWedges  #flagging the number of wedges that were not completely pop-filled\n",
    "        centerPt = tractCP\n",
    "        outerPt2 = Point(tractCP.x+currentR[0]*math.cos(angle[0]), tractCP.y+currentR[0]*math.sin(angle[0]) )\n",
    "        outerPt3 = Point(tractCP.x+currentR[0]*math.cos(angle2[0]),tractCP.y+currentR[0]*math.sin(angle2[0]) )\n",
    "        HDpolly = Polygon([centerPt,outerPt2,outerPt3])   #initiate a polygon that will be the home district\n",
    "        for nW in range(nWedges):\n",
    "            HDradius[t][nW] = currentR[nW]\n",
    "            HDangle[t][nW] = angle[nW]\n",
    "            \n",
    "        for nW in range(1,nWedges):  #save final geometry, compute minority and partisan stats\n",
    "            cR = currentR[nW] #shorthand\n",
    "            outerPt2 = Point(tractCP.x+cR*math.cos(angle[nW]), tractCP.y+cR*math.sin(angle[nW]) )\n",
    "            outerPt3 = Point(tractCP.x+cR*math.cos(angle2[nW]),tractCP.y+cR*math.sin(angle2[nW]) )\n",
    "            HDpolly =  HDpolly.union( Polygon([centerPt,outerPt2,outerPt3]) )  #add this wedge to HD district polygon\n",
    "        HDpolly = HDpolly.intersection(MAP)  #exclude map's convex hull and buffer, just the original union of precincts\n",
    "        HDarea[t] = HDpolly.area  #for stats, final Home District area\n",
    "        for nG in range(nGrids) :  # ID the ACTIVE grids to look for intersecting precincts\n",
    "            gridIntersxn = gridGeom[nG].intersection(HDpolly)\n",
    "            if (gridIntersxn.area > 0) :  #this grid is RELEVANT to the final Home District\n",
    "                for tt in range(nGridTracts[nG]):\n",
    "                    nTT = gridTractNo[nG][tt]\n",
    "                    if usedTract[nTT] == 0: #only examine tracts that have not already been called for intersection\n",
    "                        usedTract[nTT] == 1  #this tract has now been called \n",
    "                        overlap = tractGeom[nTT].intersection(HDpolly).area\n",
    "                        if overlap > 0 :\n",
    "                            fracArea = overlap/tractArea[nTT]\n",
    "                            totVAP += fracArea*tractVAP[nTT]\n",
    "                            totHisp += fracArea*tractHisp[nTT]\n",
    "                            totBlack += fracArea*tractBlack[nTT]\n",
    "                        \n",
    "                for pp in range(nGridPrecincts[nG]): #scanning the list of precincts in this active grid\n",
    "                    nPP = gridPrecinctNo[nG][pp]\n",
    "                    if usedPrecinct[nPP] == 0  :\n",
    "                        usedPrecinct[nPP] = 1  #don't double up on precinct intersection\n",
    "                        overlap = vtdGeom[nPP].intersection(HDpolly).area\n",
    "                        if overlap > 0 :\n",
    "                            fracArea = overlap/vtdArea[nPP]\n",
    "                            totGOP += fracArea*vtdGOP[nPP]*vtdPop[nPP]\n",
    "                            totVote += fracArea*vtdPop[nPP]\n",
    "                            loopPrecinctUse[nPP] += overlap/vtdArea[nPP] *tractPop[t]/avgDistrictPop\n",
    "        HDvHisp[t] = totHisp/totVAP\n",
    "        HDvBlack[t] = totBlack/totVAP\n",
    "        HDvGOP[t] = totGOP / totVote\n",
    "        for nPP in range (nPrecincts) :\n",
    "            precinctUse[nPP] += loopPrecinctUse[nPP] #add to global use for this precinct\n",
    "            \n",
    "        \n",
    "\n",
    "    # end of loop on this tract\n",
    "for t in range(nTracts):\n",
    "    if(wrongPop[t] > 0):\n",
    "        HDvPop[t] = wrongPop[t]  #undo the lie that got us out of the loop early\n",
    "HDsumWeight = np.sum(HDweight)\n",
    "print(\"Sum of weights over all precinct home districts should have been 1.000, but was \",HDsumWeight)\n",
    "print(\"Average and max number of wedgePop loops per tract were: \",np.average(tractLoopCounter),np.max(tractLoopCounter) )\n",
    "print(\"min,average,max of Home District areas were: \",np.min(HDarea),np.average(HDarea),np.max(HDarea) )\n",
    "stateGOP2 = 0.\n",
    "stateHisp2 = 0.\n",
    "stateBlack2 = 0.\n",
    "for t in range(nTracts):\n",
    "    HDweight[t] = HDweight[t]/HDsumWeight   #renormalizing\n",
    "    stateGOP2 += HDweight[t]*HDvGOP[t]\n",
    "    stateBlack2 += HDweight[t]*HDvBlack[t]\n",
    "    stateHisp2 += HDweight[t]*HDvHisp[t]\n",
    "statePop = np.sum(tractPop)\n",
    "print(\"calculated statewide vote was {0}, should have been {1}\".format(stateGOP2, stateGOP) )\n",
    "print(\"calcd statewide Hispanic pop was {0}, should have been {1}\".format(stateHisp2, np.sum(tractHisp)/stateVAP ) )\n",
    "print(\"calcd statewide Black pop was {0}, should have been {1}\".format(stateBlack2, np.sum(tractBlack)/stateVAP ) )\n",
    "print(\"fraction of HDs that with altered wedge angles near boundaries = \",np.sum(didWeRestart)/nTracts)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "24a347a9-8220-4c1a-bcfc-14923f1f98f7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sum of weights over all precinct home districs should have been 1.000, but was  1.0000118982535453\n",
      "Average and max number of wedgePop loops per tract were:  6.841540404040404 26.0\n",
      "min,average,max of Home District areas were:  0.0 0.7833374167075176 2.77961185761946 for  OH\n"
     ]
    }
   ],
   "source": [
    "#use this line to document progress\n",
    "# start OH 2:48pm, end 4:40\n",
    "print(\"Sum of weights over all precinct home districs should have been 1.000, but was \",HDsumWeight)\n",
    "print(\"Average and max number of wedgePop loops per tract were: \",np.average(tractLoopCounter),np.max(tractLoopCounter) )\n",
    "print(\"min,average,max of Home District areas were: \",np.min(HDarea),np.average(HDarea),np.max(HDarea),\"for \",STATE )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "72247942-899a-4ab2-9796-239aa1e524fb",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "OH 13MarOppW\n"
     ]
    }
   ],
   "source": [
    "date = \"13MarOppW\"\n",
    "print(STATE, date)  #check that I will not overwrite existing file :-)\n",
    "tractCPx = [0.]*nTracts\n",
    "tractCPy = [0.]*nTracts\n",
    "tractNo = [0.]*nTracts\n",
    "for t in range(nTracts):\n",
    "    tractCPx[t]=tractGeom[t].centroid.x\n",
    "    tractCPy[t]=tractGeom[t].centroid.y\n",
    "    tractNo[t]=t"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "c55ac5fd-7402-47b9-9093-10b9fe0912b6",
   "metadata": {},
   "outputs": [],
   "source": [
    "#LET'S WRITE AN OUTPUT FILE BEFORE WE FORGET :-)\n",
    "#convert HD wedge geometries to 1D arrays.  BELOW IS FOR 4-WEDGE.  CAN AUGMENT FOR 6-WEDGE\n",
    "HDangle0 = [0.]*nTracts\n",
    "HDradius0 = [0.]*nTracts\n",
    "HDangle1 = [0.]*nTracts\n",
    "HDradius1 = [0.]*nTracts\n",
    "HDangle2 = [0.]*nTracts\n",
    "HDradius2 = [0.]*nTracts\n",
    "HDangle3 = [0.]*nTracts\n",
    "HDradius3 = [0.]*nTracts\n",
    "for t in range(nTracts):\n",
    "    HDangle0[t] = HDangle[t][0]\n",
    "    HDradius0[t] = HDradius[t][0]\n",
    "    HDangle1[t] = HDangle[t][1]\n",
    "    HDradius1[t] = HDradius[t][1]\n",
    "    HDangle2[t] = HDangle[t][2]\n",
    "    HDradius2[t] = HDradius[t][2]\n",
    "    HDangle3[t] = HDangle[t][3]\n",
    "    HDradius3[t] = HDradius[t][3]\n",
    "# now convert output to pandas dataframe and export\n",
    "\n",
    "paramList = [\"STATE\",\"stateGOP\",\"nDistricts\",\"nTracts\",\"nPrecincts\",\"nWedges\",\"popn-toler\",\n",
    "             \"gain\",\"maxAngleRatio\",\"levelL\"]\n",
    "paramValues = [STATE,stateGOP, nDistricts, nTracts,nPrecincts,nWedges, toler, gain, maxAngleRatio, levelL]\n",
    "for i in range(nTracts-len(paramList)):\n",
    "    paramList.append(\".\")\n",
    "    paramValues.append(-99)  #so all columns have same number of entries, even the parameter list\n",
    "df = pd.DataFrame( {\"paramList\": paramList,\"paramValues\":paramValues,\"HD-pop\":HDvPop,\"HDvGOP\":HDvGOP,\"HDvHisp\":HDvHisp,\n",
    "                    \"HDvBlack\":HDvBlack,\"HDwt\":HDweight,\"HDarea\":HDarea, \"HDangle0\":HDangle0, \"HDangle1\":HDangle1,\n",
    "                    \"HDangle2\":HDangle2,\"HDangle3\":HDangle3,\"HDradius0\":HDradius0,\"HDradius1\":HDradius1,\n",
    "                    \"HDradius2\":HDradius2,\"HDradius3\":HDradius3,\"startAngle\":angle0,\"tractNo\":tractNo,\n",
    "                    \"Loops\":tractLoopCounter,\"tractPop\":tractPop,\"tractHisp\":tractHisp,\"tractBlack\":tractBlack,\n",
    "                    \"centroid x\":tractCPx,\"centroid y\":tractCPy, \"tractUse\":tractUse,\"nearEdge\":nearEdge,\n",
    "                    \"wrongPop\":wrongPop,\"Restart?\":didWeRestart} ) \n",
    "\n",
    "outname = STATE+str(nDistricts)+\"tol\"+str(toler)+\"nW\"+str(nWedges)+date+\".csv\"\n",
    "outpath = \"state_HD_output/\"+outname\n",
    "df.to_csv(outpath)\n",
    "precinctNo = [0.]*nPrecincts\n",
    "vtdX = [0.]*nPrecincts\n",
    "vtdY = [0.]*nPrecincts\n",
    "for p in range(nPrecincts):\n",
    "    precinctNo[p]=p\n",
    "    vtdX[p] = vtdGeom[p].centroid.x\n",
    "    vtdY[p] = vtdGeom[p].centroid.y\n",
    "df2 = pd.DataFrame( {\"precinctNo\":precinctNo,\"precinctPop\":vtdPop,\"precUse\":precinctUse, \"vtdX\":vtdX, \"vtdY\":vtdY} )\n",
    "outname2 = STATE+date+\"_VTD_tol\"+str(toler)+\"nW\"+str(nWedges)+\".csv\"\n",
    "outpath = \"state_HD_output/\"+outname2\n",
    "df2.to_csv(outpath)  #currently, I'm outputting the precinct use stats to a separate file."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "c4449da0-47a9-40cc-a585-8288447290e6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD4CAYAAADiry33AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAAA2NUlEQVR4nO3deXhU5dnH8e89k41sBEIWskDYJYQlEBABEVCQTVQUt+JrtYpWbW2rXXyrrd1829pWrV0UUUtd64Z1AQFlEWQNJOwQtkBCgIQsLNln5nn/yBCJTmCyzEwy3J/rypU5Z85yzyH58eQ5zzlHjDEopZTyXxZfF6CUUsqzNOiVUsrPadArpZSf06BXSik/p0GvlFJ+LsDXBbjSpUsXk5KS4usylFKq3di0adMJY0yMq/faZNCnpKSQmZnp6zKUUqrdEJFDjb2nXTdKKeXnNOiVUsrPadArpZSf06BXSik/53bQi4hVRLJE5GPn9FMisltEtorIAhGJamS9ySKyR0T2icjPWqlupZRSbmpKi/4hYNc500uBNGPMICAHePTrK4iIFfg7MAVIBW4VkdTml6uUUqqp3Ap6EUkCpgHzzs4zxiwxxtick+uAJBerjgD2GWMOGGNqgLeAa1tWslJKqaZwdxz9M8BPgIhG3r8L+I+L+YlA3jnT+cClrjYgInOAOQDdunVzsyyllGrfyovKObrpKMU5xXTp34VeE3u1+j4uGPQiMh0oNMZsEpFxLt7/OWADXne1uot5Lm+Ab4yZC8wFyMjI0JvkK6X8UtXJKo6sP0Le2jzyVudxcPlBjL0u8qJ6RPHQgYdafZ/utOhHAzNEZCoQAkSKyGvGmNkicgcwHbjSuH6CST6QfM50ElDQ0qKVUqo9MA5DcU4xeWvzyF+bT/7afAp3FNY1dwViB8Qy6sej6DO1D1/8+gtKD5Z6pI4LBr0x5lGcJ1qdLfpHnCE/GfgpcIUxpqKR1TcCfUSkB3AEuAW4rRXqVkqpNsU4DGW5ZRTuKORY9rG6YF+XT1VpFQDBHYNJviyZ1FmpJF2WROKIREI6htSvHxYbRllumUdqa8m9bv4GBANLRQRgnTHmPhFJAOYZY6YaY2wi8iCwGLACLxtjdrS4aqWU8hFblY1Dqw6x79N9HN9ynKCwIE4XnKZoZxG1FbX1y8WkxtB/Zn+SLksi+bJkulzSBbG46s32vCYFvTFmBbDC+bp3I8sUAFPPmV4ILGx2hUop5UPGGIr3FLNv8T72f7qf3JW52CptWIOsxA2Oo7ywnLDYMIbeM5TYtFhiBsQQOyCW4MhgX5der03evVIppXzBGENlSSUnD52kZF8JBz4/wP5P93Py8EkAovtGM/SeofS+ujfdr+hOUFiQjyt2jwa9UuqiVX26mjeveZPC7YWERIVQfrycmjM19e8HRQTR88qejPnfMfS+ujdRKVG+K7YFNOiVXzHG4DxnpNQ32Kps5K3NI3d5LgeXHSR/bT7GUTdgsPfVvQmNCaVj945EpUQRlRJFbFos1kCr1+pzPXix5TTold8oyy3j9amv47A5GPLtIQz+n8FEJkX6uizlQw6bg/x1+RxcfpDcZbnkrc3DXm1HLEJCRgKjfjyKlPEp9JjQw6uB7pIH2yca9MrnKksq2fneTpIuTSJuUFyztlG4vZDXrn6N2opaYgfGsuzny1j++HJ6TuzJkDuHcMm1lxAQoj/uFwOH3UHu8ly2vbmNPR/sobKkEgTih8Qz/IHh9Bjfg26Xd2swtNHf6U++8gljDIe+OMTmFzez892d2KvtDLxtIDNfn9nkbR3+8jBvTn+TgA4BfPuLbxM3MI6S/SVk/yubLfO38N4t7xHSKYS0W9NIvzOdrsO6aveOnzHGcHTTUba+vpUdb+3gzLEzBEUE0W9GPy65/hJ6jO9Bh84dfF2mz2jQK68qLywne342WfOyKM4pJjgymPTvpLP7/d047I4mby/nkxzemfUOkUmR3L7k9vqTZZ17dWbCbyYw7olxHFx2kOxXssl+OZvMf2QSmxbLkDuHMGj2IMJiw1r5EypPy1+XT9GuImLTYindX0re2jz2f7qf4pxirEFW+kztw8BvDaTPtD4Edgj0dbltgga98pgzx85w8vBJIpMjKdxeyOYXN7P7g904ah0kj05mzP+OYcCsAQSGBnLw84PkfZnHO7PecXv7DpuDPR/tIX5IPN9a+C2XoW2xWug1sRe9JvaiqqyK7W9tJ/uVbJY8vITPfvoZfab1YcidQ+gztY/v+2hVo2ora8n5OIcdb+1g1/u7GrwXGBpI8qhkLnvkMlJvTKVDp4u35d4YDXo/Y4zBYXPgqHVgr7Vjr7HXv3bUOrDX2Ovnu/qqX8bVl4v1HDWNb7NgYwG2Klt9bR2iOzDiwREMvXsoMakxDeruN6Mfez/ZS9HOoiZ93gGzBjB97nSCIy58cUpIVAgZ92WQcV8GRTuLyHoli62vbmXPf/cQFhvGwNkDSb8zndi02CbVoDyn7FAZG/+xkax5WVSWVNIhugMjfziSrkO7EhIVQkRCBHGD4rAE+MnD8jx0O0fx1HCelsjIyDCZmZk+2bcxBmN3huW5X3ZHgwC9UJA2NWjPG7CNLVPr+n1PsgZZ678sgZYG0w2+Aq106t2JPlP7cLrgNGGxYfSb0Y+A4LbVtrDX2tm/eD/Zr2Sz56M9OGodJGQkMOTOIaTdmqatQx8wxnDw84Ns+NsGcj7KAYFLrruEjO9mkHJFiv+E+tcsuH0BeWvy+P7+7zdrfRHZZIzJcPVe2/qtawUrf7OSI+uONAhbVwHc2LyzY2q9wRJgOX9YOgPTEmghKCyo0YBtMB14zrzGXrvYR2P7P3d5S4DF705iWgOt9J3el77T+1JeVM62N7aR/Uo2Cx9YyOIfLWbys5PJuNfl745qZcZh2PnuTlb+eiVFO4oI7RLK6J+NJuO+DDomd/R1ee2a3wX9l7//ktqKWpJGJmEJtBAQHIAl3NIgNOu/B31tOrAuzM79Eqt8Y96567va5rnzXO3DGly3jK9ucKRcC4sJY+RDIxn50EiWPbaMVb9bhb3as38hqTpZL2ex6PuLqC2vJSY1huvmX8eAmwbokNhW4ndH0RpkJf3udKY8O8XXpah2qvRAKeufXU/3sd0Z/sBwX5fj12xVNhY+uJCsl7IAuOGtG0i9MRWL1T+7Z3zF74JeLOLV7hflXxw2B+/Pfh+xCte/er0GjofYqmxs/MdGNs/bzIldJ7j855cz7lfj9Hh7iN8FPYIGvWq2VU+uIn9tPjPfmElIVAhr/7KWk3knqSisoLK0kst/fjndRuszjZvDVm3jwNID7F20l03Pb8I4DJYAC99a9C16T3Z513PVSvwu6MUiHhuipPxb/rp8Vv56JQO/NZBuY7rx4vAXKc4pJig8iLDYMCqKK1j4wELu3Xyvnl9pAmMMW1/dyrKfL+NU/ikCQwO55PpLiBsUx2U/uoyg8PZxq19v0JuauUm7blRzGGNYcPsCMHVD+Q4uO0hxTjEzX5/JwNsGArDtjW28/6332fHODtJuTvNxxe3D8W3HWXj/Qg6vPkzC8ASmPT+Nnlf21JOsruhNzdwnFmnWpfTq4uawOejUsxOlB0sbXJ17bqMh7ZY0Vv9+NSt+sYLUG1L9djx3a3DYHbx/2/vseHsHHaI7cM28a0i/M13/EvIRvwx67bpRTWUNtDJ78WyqT1eT92UeuStyOZZ1rMEVvGIRxv9mPP+57j9s+fcW0u9K92HFbU/1qWpyV+ay7fVt7P5gN/ZqO0HhQTy450FCo0N9Xd5Fze2gFxErkAkcMcZMF5FZwBNAf2CEMcblpawikgucBuyArbErt1qLdt2olgiOCKb35N6NnhzsN6MfiSMS+fA7H/Lhdz7k3qx7iR8S7+Uqm8ZeY6+/51BrX5lsHIY9H+1hw3MbOLTyEA5b3V/TQRFBXP/q9aTemOp3F9m1R035V38I2AWcfZLDdmAm8IIb6443xpxoYm3NIhbB2DXolWeICNe8eA3PD34egMrSSh9X9E3lheXkrc0jb00e+WvyKcisu+eQWIXOvTrTe0pvUm9MrbuosJndT7ZqG9ve2MbaP62laGcRHbt3ZOSPRtJ7cm+6pnclODJYu2naELeCXkSSgGnA74AfARhjdjnf81hxzWGxWrRFrzwqblAcPSb04Pi24yQOT/R1OZTllrFv8T7y1+STtyaPkn0lAFgCLSQMSyDj/gxiUmMoyy3j+JbjZP4zk/XPric4MpiY1BgiEiMI7xpORNcIwuPDqSytpCy3jIrCCsqLyikvLEdECIsNI6pHFLXltRxcdpDywnLiBscx8/WZDLhpgJ6zaMPcbdE/A/wEiGjGPgywREQM8IIxZq6rhURkDjAHoFu35o9T1q4b5Q0TfjeBly57iXXPrGPsY2O9uu8Nf99AwYYCgiKDyF+bz9FNRwEIiw0jeVQyQ+cMJXlUMgnDElyObqk6WcWBpQc48PkBivcUU7SjiAOfHaD6ZHX9MsGRwYTHhxMWG0Z032gAzhw9Q87HOVgDraSMSyH97nR6XtWzzTX22jUPRdcFg15EpgOFxphNIjKuGfsYbYwpEJFYYKmI7DbGfPH1hZz/AcyFurtXNmM/dfVq0CsvSBqZRL9r+7HmqTVkfDfD4ycbjcOwf8l+Mp/PZM9/9wB1N8VLGpnEhCcnkHpDKp37dHYrdEM6hpB6YyqpN6Y2mF9bUcuZ42cIiQrRu3b6gCf/w3SnRT8amCEiU4EQIFJEXjPGzHZnB8aYAuf3QhFZAIwAvhH0rUWHVypvmfDbCfxz0D/58g9fMvGPE1u0LXutnarSqrq+dIsgVkEswoldJ9j9wW72fLiHsoNlhMaEMvqnoxn72FgCQwNbtR88MDSQTj06tdr2VNtxwaA3xjwKPArgbNE/4m7Ii0gYYDHGnHa+ngT8utnVurNPq7bolXfEpsUyaPYg1v91PdWnqxl420C6je7mVvieOXaGnE9yyFudx9GsoxTtLMJR67qBYgmw0GNCD678vyu55LpL2tw9/VXb1+yfGBG5HngOiAE+EZFsY8zVIpIAzDPGTAXigAXOP0kCgDeMMZ+2Qt2N16VdN8qLJj41EYfNwdZ/b2XT85uITI5kwM0DSLsljdgBsfV95MYYjm85zp6P9pDzUQ4FGwuAun71rkO70nty77rhjyEBGMdXD7+JTIqk25huhHbRceiq+ZoU9MaYFcAK5+sFwAIXyxQAU52vDwCDW1pkU2jQK28KjwvnhjduoOZMDXs+3MP2N7ez/pn1rP3TWgA6dO5AREIEVWVVnMo/BQJJlyYx/rfj6XdNP2IHxurJTOVxfvc3oIgGvfK+oPAgBt42kIG3DaSiuIJ9i/ZRdqiM0wWnOVNwBkuAhd5Te9Nnah/C48J9Xa66yPhd0CPoLRCUT4VGhzJo9iBfl6HaIU/dvdLvrnAQEY8dLKWU8hgP9uD5XdB78mAppVR75H9BD9p1o5RS5/C7oNeuG6WUasjvgl5PxiqlVEN+F/Q6JlkppRryu6AHzw1RUkopj/JQdPlf0GvXjVKqHfJkb4TfBb2ejFVKqYb8Luh1HL1SSjXkf0EP2nWjlFLn8Lug164bpZRqyO+CXk/GKqXaK72pmZt0HL1Sql3Sm5o1jXbdKKXUV/wv6LVBr5RSDbgd9CJiFZEsEfnYOT1LRHaIiENEMs6z3mQR2SMi+0TkZ61R9AVpg14ppeo1pUX/ELDrnOntwEzgi8ZWEBEr8HdgCpAK3Coiqc2o02066kYppRpyK+hFJAmYBsw7O88Ys8sYs+cCq44A9hljDhhjaoC3gGubW6xbtOtGKdUOZb+Szam8Ux7Ztrst+meAnwCOJm4/Ecg7ZzrfOc+ztEGvlFL1Lhj0IjIdKDTGbGrG9l21r13GsIjMEZFMEcksKipqxq7qt6NdN0qpdmfInUOITI70yLbdadGPBmaISC51XS8TROQ1N7efDySfM50EFLha0Bgz1xiTYYzJiImJcXPzLmjXjVJKNXDBoDfGPGqMSTLGpAC3AMuMMbPd3P5GoI+I9BCRIOf6Hza7Wndpg14ppeo1exy9iFwvIvnAZcAnIrLYOT9BRBYCGGNswIPAYupG7LxtjNnR8rIvVJzH96CUUq3Lgw3UgKYsbIxZAaxwvl4ALHCxTAEw9ZzphcDClhSplFIXA0/dwsX/rozVbhullGrA/4IevbGZUkqdyy+DXiml1Fc06JVSys/5XdDrxVJKqfbIk9nld0EP6PBKpVS7YxwGseioG6WU8lvGYRCrBr17tOdGKdUOaYu+iXR4pVKqvdGgV0opP6dBr5RSfs7YNejdpsMrlVLtkXEYLFbPRLLfBT2gwyuVUu2Odt0opZQfM8ZQXljusaBv0m2K2wXtuVFKtUEOu4P8tfkc3XyUihMVXHLdJVQUV7DrvV3s/mA35cfL6T62u0f27X9Bjw6vVEq1LaUHSnn35ncpyPzqSapf/OYLAALDAuk7rS8pE1Lod00/j+zfL4NeKaXainXPrGP5L5ZjCbBw7SvX0uvqXgQEB7Dl31uISomi19W9COwQ6NEaNOiVUspDygvLWfzDxQB8b9/36Nyrc/17I38w0mt1+N3JWB1eqZRqK0I6hZB4aSIAq55chb3W7pM63A56EbGKSJaIfOyc7iwiS0Vkr/N7p0bWyxWRbSKSLSKZrVX4+Yv1yl6UUuq8rIFW7lx1J2P+dwzZL2fzxrQ3qK2o9XodTWnRPwTsOmf6Z8Dnxpg+wOfO6caMN8YMMcZkNKNGpZRqt6yBVq783ZVM+dsUDiw9QPb8bK/X4FbQi0gSMA2Yd87sa4H5ztfzgetatbLm0p4bpVQbNPz+4XTu05nNL272eheOuy36Z4CfAI5z5sUZY44COL/HNrKuAZaIyCYRmdPYDkRkjohkikhmUVGRm2U1uq0Wra+UUq1NRBj/m/EcyzrGqxNfpepkldf2fcGgF5HpQKExZlMz9zHaGDMUmAI8ICJjXS1kjJlrjMkwxmTExMQ0c1dKKdV2pd2cxpTnpnBo5SG2vb7Na/t1p0U/GpghIrnAW8AEEXkNOC4iXQGc3wtdrWyMKXB+LwQWACNaoW6llGqXqk9XAxDVI8pr+7xg0BtjHjXGJBljUoBbgGXGmNnAh8AdzsXuAP779XVFJExEIs6+BiYB21up9sbq9eTmlVKq2coOlbH8seWkzkql9+TeXttvS8bR/x6YKCJ7gYnOaUQkQUQWOpeJA1aLyBZgA/CJMebTlhTsFu2iV0q1QWUHyzAOQ/pd6V49l9ikK2ONMSuAFc7XxcCVLpYpAKY6Xx8ABre0SKWUau9yPsnhzelvAnUXUnmT310Zq8MrlVJt0d6Fe+tfe+p2xI3xv6BHh1cqpdqeyc9M5uqnrwZg5zs7vbpvvwx6pZRqa6yB1vr7zUckRHh13xr0SinlJXGD44hPj2f171fjsDkuvEIr8bugd9gciFW7bpRSbY9YhPD4cCpLKqmt9N7NzfzufvS2KhsBIX73sZRSfmDH2zvYt2gfE56cQHBEsNf263ctelu1Br1Squ2praxl2+vbsAZbGfPTMV7dt98loq3KRkCw330spVQ7ZYzhyz98ydo/r6XiRAUjvjfC68Mr/S4R7dV2rCFWX5ehlFIAZL2UxeePfk7vyb0Z8+gYul3ezes1+F3Qa4teKdVWOGwOlj++nO5ju3PbJ7d5vSV/lvbRK6WUh2x/aztnjp3hsocv81nIg58FvTGmrusmWLtulFK+tfEfG/ngjg+IGxxH7yneu1OlK34V9PaausdzaYteKeVLh744xKLvLaL3lN7ctfourIG+bXz6VdDbqmwA2kevlPIZe62d92e/T6denbjhjRsICg/ydUn+FfT2am3RK6V86/SR05zKO8WoR0YRHOm9i6LOx6+C/myLXvvolVK+Yquuy6GzjwxsC/wr6Ku160Yp5Ttr/7KWF9JfICg8iB7je/i6nHp+lYj1ffTadaOU8rKyQ2UseXgJyaOSuW7+dXTu3dnXJdXzqxb92T567bpRSnlbeFw4wR2DCe0S2qZCHpoQ9CJiFZEsEfnYOd1ZRJaKyF7n906NrDdZRPaIyD4R+VlrFe6KtuiVUr4SEBJApx6d6od5tyVNadE/BOw6Z/pnwOfGmD7A587pBkTECvwdmAKkAreKSGrzyz0/7aNXSvlK6cFSjmUfI3Fkoq9L+Qa3gl5EkoBpwLxzZl8LzHe+ng9c52LVEcA+Y8wBY0wN8JZzPY+o77oJ0q4bpZR3HV59GIB+1/TzcSXf5G6L/hngJ8C5z76KM8YcBXB+j3WxXiKQd850vnPeN4jIHBHJFJHMoqIiN8tqyGGvK88S4FenHpRS7cDZMfPefHKUuy6YiCIyHSg0xmxqxvZd3cXHuFrQGDPXGJNhjMmIiYlpxq7A2Os2rY8SVEp507Y3t7Hg9gUEhgXS5ZIuvi7nG9zpzB4NzBCRqUAIECkirwHHRaSrMeaoiHQFCl2smw8knzOdBBS0tOjGnH3YrsWqLXqllPd8+tCnRCZGcuPbNxIaHerrcr7hgolojHnUGJNkjEkBbgGWGWNmAx8CdzgXuwP4r4vVNwJ9RKSHiAQ51/+wVSp3QbtulFLekvNJDp//7+dsnreZoLAggiODiRsY5+uyXGrJ8JTfA2+LyHeAw8AsABFJAOYZY6YaY2wi8iCwGLACLxtjdrS06MZo141SyhvKC8t5a8ZbGMdXPdFluWXYa+xtcjBIk4LeGLMCWOF8XQxc6WKZAmDqOdMLgYUtKdJd9S167bpRSnlQYGggHaI7ENIxhEl/nkTRziI69+ncJkMe/OzKWG3RK6W8ISg8iOvmX0fJvhIOfHaAMT8bQ+oNHrtEqMX86soibdErpTytpryGj+75iJ3v7AQgul+0jyu6ML8Kem3RK6U8be/CvWx/czuDbh/EyB+MpOvQrr4u6YL8qumrLXqllKdFJkUCkHpjarsIefCzoNcWvVLKk6rKqtjy7y1A+7p5Yvup1A3aoldKeYIxhpW/Xsm6v6yj+lQ1abem0X1sd1+X5Ta/Cnpt0SulPGHnuztZ+cRKkkYmMe2f04gfEu/rkprEr5q+2qJXSnlCdN9oLIEWCrcXUnqg1NflNJlfJaK26JVSnhA/OJ47V91JzZka3r7hbXJX5Pq6pCbxq6DXFr1SylPiBsVxzYvXALD4h4t9XE3TaB+9UkpdgK3axgvpL1C8pxhrsJXBdwz2dUlN4ldBf7ZFLxYNeqVU6zmWdYziPcWkfyedKc9NIbBDoK9LahK/6uMwdoNYBBENeqVU67HX1j2m9JLrLml3IQ9+FvQOm0O7bZRSrW7L/C0EhAS0mythv87vum70oSNKqZY4secEq363itL9pdSU11BZUsmpvFMMu28YEQkRvi6vWfwq6I3d6IgbpVSznDl2hpW/XsnmFzcTEBJA4ohEQruEEpsWS9ehXRl+/3Bfl9hsfhX0Drt23SilmsZeY+fLp75k9f+txl5tZ+g9Qxn3xDjCYsN8XVqr8aug1xa9Uspd9lo7m1/czJd/+JKTh0/Sf2Z/rvz9lUT3afv3l2+qCwa9iIQAXwDBzuXfNcb8UkQGA88D4UAu8C1jzCkX6+cCpwE7YDPGZLRa9V+jLXqllDuObDzCp9//lPx1+SSPSmb63On0vrq3r8vyGHda9NXABGPMGREJBFaLyCLgOeARY8xKEbkL+DHweCPbGG+MOdE6JTdOW/RKqfMpLyzns0c/I/vlbEJjQpn5xkzSbknz+yHZFwx6Y4wBzjgnA51fBuhHXUsfYCmwmMaD3iu0Ra+UasyhVYd4Z9Y7VJZUMurHoxj7+FiCI4J9XZZXuNX8FRGriGQDhcBSY8x6YDsww7nILCC5kdUNsERENonInPPsY46IZIpIZlFRkdsfoMGOtEWvlHJh3bPrmD9+PsERwczZNIeJf5x40YQ8uBn0xhi7MWYIkASMEJE04C7gARHZBEQANY2sPtoYMxSY4lx+bCP7mGuMyTDGZMTExDT1c9Rtw260Ra+UamDt02tZ/IPF9LumH/dk3kPcwDhfl+R1TRp1Y4wpE5EVwGRjzJ+ASQAi0heY1sg6Bc7vhSKyABjBV10+rcpWbWtXj/dSSnlG1ckqSg+UsvPdnax+cjX9b+jPjW/deNFeUOnOqJsYoNYZ8h2Aq4A/iEisM7wtwGPUjcD5+rphgMUYc9r5ehLw69b9CF+xVdkICNagV+pitfW1rSz/xXLKDpbVz0u7NY3r5l930YY8uNei7wrMFxErdV09bxtjPhaRh0TkAecy7wOvAIhIAjDPGDMViAMWOM9oBwBvGGM+be0PcZatSlv0SrUn9lo7B5cdpGRfCTGpMXQb3Q1rkLXJ2zEOw8rfrGTlEytJvDSRjO9m0LlXZ2LTYonu63/j4pvKnVE3W4F0F/OfBZ51Mb8AmOp8fQDw2o2b7dV2rMFN/yFRSnlf3to8Fty+gNL9Xz2aL6pHFDPmzaDHhB7nXddhc1CcU0x5UTmh0aFsfmkz659Zz6DbB3HNi9foX/Zf41dHw2FzENDBrz6SUn6nvKicVU+uYsNzG+iY3JGb3r+JxBGJ5K/L5/NHP+e9W9/jwZwHCekY0mA94zDsX7qfba9tY9eCXdSW1zZ4v/vY7lw3/zq/HxPfHH6Vig67Q4dXKtVGHf7yMBue20DORznYqmwMuXMIk/48qT7QU29IJSoliheHv8gXv/2CSU9NAuoGWWx9bStrnlpD8Z5iQqJCSLs1je5juxOREEFlcSXGYeh1dS8N+Ub4VdDr8Eql2qYVT6xg5a9WEhIVwqD/GcTIh0bS5ZIu31guYVgCg/9nMOv+so7jW45j7IZj2ceoLKkkPj2emW/MpP/M/to100R+dbS0Ra9U21O4o5CVv1pJ6qxUZsybQXDk+S9UmvzsZKxBVo5lH8NitdBvRj/Sbkuj51U9tcXeTH4V9NqiV6rtObGr7jZXo386+oIhDxDSMYRr5l7j6bIuKn4V9NqiV8o3HDYHVWVViFUI6RiCWL5qcBVkFmAJtBA7INaHFV7c/CrotUWvlHedyj/Fou8vYu/Cvdir6x6gbQmsa2yJCMmjkynZW0Ln3p31Ghcf8qsjry16pbzrvVvfI399fv0FSg67g/Lj5RhjcNgc7F+8n5ryGkb9ZJSvS72o+VXQa4teKe+qKK4gcUQiU56d4nqBP3u3HuWaXwW9tuiV8jx7jZ2lP1nKvkX7KM4pdjlMUrUtfhX02qJXyrMcNgef//xz1j+7nr7T+zLglgGk3/mNO6SoNsavgl6fMKWU5zjsDp4f8jxFO4roPbk3t350q69LUm7yq34O49AnTCnlKbXltRTnFBPdN5qbP7jZ1+WoJvCrFr2xm/rxuw6bg9W/X82muZuwBFjoNrobE56cQMfkjj6uUqn2KTgymNQbUtn+1naqT1YTEOtX8eHX/Kr5e7brpqqsijemv8Hyx5cTmxZL4vBEdr2/ixeGvMDehXubvf3CHYWs+dMa1j27jpOHT7Zi5Uq1D93GdgPgxO4TPq5ENYVf/ZdcVVrFxr9tZNMLmzAOw/S50xl2zzAAivcW8+7N7/LmjDeZ+MeJpIxLoUv/LgR2CHS5raJdRVSVVZGQkYCIsOFvG1jy8BKMwwDw+aOfc9snt9Fj/Pnvm62UPwmLCQMgpFPIBZZUbYlfBf2AmwZwMu8k3S7vxoCbBpAwLKH+veg+0Xx75bd5+4a3WfLwEgACQgIY+cORjHl0DMERwdRW1HJizwnWP7ueLfO3ABAYGogxBluljb7X9OWauddQU17Dv674Fyt+sYIeqzTolf/KW5OHMYbQ6FCKc4rZ8NwGAEKiNOjbE78K+hv/c+N53w+OCGb24tkc3XyUstwydi/Yzer/W826p9cRGhPKqfxTYMASYGHMo2OIHxJP3po8xCp0H9udftf0qz8HkDIuhcOrD3vjYynlEyd2n+Dl0S83mBcYGsi0f07Tc13tjF8FvTtEhIRhCSQMSyD1hlQu/f6lbH9rOxUnKujcuzMxqTEkjkikY7e6H+QBNw1wuZ3YgbFse30bCx9cSHTfaDp270jnXp3p3Kez3itb+YWzD9Pu1KsTYx8fS3SfaOIGxxEUFuTjylRTXTCRRCQE+AIIdi7/rjHmlyIyGHgeCAdygW8ZY065WH8ydc+WtVL30PDft175LZc4IpHEEYlNXi/j3gzy1+aT9VIWtipb/XyxCF2HdWXQ7EEMmzNMb+SkfOrM8TMcXnWYypJKEoYn0DW9q9vrdu7dmWH3DWPT85tY/eRqrv3XtRry7ZQYY86/QN2d/sOMMWdEJBBYDTwEPAc8YoxZKSJ3AT2MMY9/bV0rkANMBPKBjcCtxpid59tnRkaGyczMbO5n8ipjDBVFFZQdKqNkXwlFO4vY/+l+CjILiOoRxY3/uZHE4U3/j0SplirZV8IL6S9Qc6amft4Vv7yCcU+Mc3sbxhh2vbeLz376GacLTjPr3Vn0ndbXA9WqlhKRTcaYDJfvXSjov7ahUOqC/rvAUqCjMcaISDKw2BiT+rXlLwOeMMZc7Zx+FMAY83/n2097CvrGHPjsAB/e/SG1FbU8sOsBQqNDfV2SuoiUF5bz4d0fsn/JfmZ/OpuO3Tuy8omVbPn3FobcOYQOnTsQ3TeaQbcPanTk2blO5Z/i6eSn6TmxJ7cvud0Ln0A11fmC3q1x9CJiFZFsoBBYaoxZD2wHZjgXmQUku1g1Ecg7ZzrfOc/VPuaISKaIZBYVFblTVpvW86qe3PLfW6goqiDr5Sxfl6MuEgWZBbwz6x3+kvgXcj7KYdyvxpEyLoVOPTox6S+TiEiIIPuVbDb+fSMf3/sxr058laqyqgtud/O8zQCk36X3tWmP3OpANsbYgSEiEgUsEJE04C7gryLyC+BDoMbFqq5uPOPyTwhjzFxgLtS16N2pq62LHxxPZHIk+xbtY9TDoxo8dUep1laWW8b88fMRqzDi+yMY+p2hxKTG1L8fGh3KDw79AACxCtvf2s4Hd3zAG9Pe4I7ld2ANsja67R3/2UHXYV1JuyXN0x9DeUCTrow1xpQBK4DJxpjdxphJxphhwJvAfher5NOwpZ8EFDSv1PZp1COjyF2eyzuz3qG2otbX5Sg/VXOmhucHP49YhbvX3c3Vf766QcifZQmwYAmwICIMvHUg1796PXlr8lj4vYUNlju47CDzJ8znpVEvsXneZkKiQijcVsjmlzZ76yOpVnTBoBeRGGdLHhHpAFwF7BaRWOc8C/AYdSNwvm4j0EdEeohIEHALda3/i8al37+Uq5+5ml0LdvGvcf+qG6uvVCt77erXqD5VzbR/TmvS/eHTbk4jbnAcm+du5vi24wAc33qc1ya/Run+UmxVNj665yNO5Z/CXmPno7s/4tCqQ576GMpD3GnRdwWWi8hW6oJ7qTHmY+BWEckBdlPXSn8FQEQSRGQhgDHGBjwILAZ2AW8bY3a0/sdo20Y+NJKbF9zMid0nmD9+PqcLTvu6JOUnHDYHr01+re7CPos0qWvFGMOyx5ZxfMvxBteObHtzG8ZhmLNpDnM2zeHaV64lPD6cgA4BJF6aSPzgeE99HOUhTRp14y3+MOrGlby1ebw26TU69erEvVn3UjdyVanmW/6L5Xzxmy8Ijw/nB4d+cN5+9q87/OVhXhnzCkERQTxy7BEcNgdZL2fV3QxwYCzfWfMdD1auWtv5Rt3o1TxelHxZMuN/M57FP1zMycMnieoe5euSVDtXXlQOwPf2fq9JIQ8QNyiOxEsTObL+CE93e5qa0zXYa+ykjEvh2leu9US5ykc06L0sKLzuykJtzavWkDQyiU3Pb6Jkf0mTu1SCI4L5zprvsOv9XexduJeQTiEMvHUgCRkJF15ZtSsa9F5mr7EDX91HRKnmKi8qJ2teFoFhgcT0/+YIG3eIRUi9MZXUG1MvvLBqtzTovSxucBwAq3+/msnPTNax9apJaitr2TR3E3s/3svh1Ydx2B1M++e0JnfbqIuLBr2XJY9KZvgDw9nw3AayXsqic5/ORPeNJrpvNPHp8SRflkxEQoRb2zLG4LA5sAbqL/nFIOeTHD6+92NOHzlNzIAYhs4ZSsa9GS7Hyyt1Lg16LxMRpjw3he5XdCdvTR4lOSUcyzrGrvd3YexfjYCKSoli3K/HETsglqCIICxWC6UHSzm+5ThHNhzhyIYjnDx0EuMwhMeH0/+G/vSd3pceE3po684P1VbW8u7N79IxuSMzV8wk5YoUX5ek2hENeh8QEQbMGsCAWV/d695WbeNY9jHy1uSx5EdLKMst44P/+cDl+h27dSRxRCIDbxuINchK4fZCNv59Ixv/vhGxCJFJkXS5pAvdr+jOkDuHENHVvb8Q/Fn16WoKMguwV9vpcWWPdvdXkDXQiiXAQlVZlV6HoZpMx9G3UQ67g6KdRZTsK6G2vBZ7rZ2O3ToSmxZLeFz4N5Yv2VfCno/2UFVaRemBUgq3FXJ863E6RHfgwd0PEtrl4rt7ZuH2QjJfyOTQykMUbi9scJelh4897PI4tmWHvjjEou8t4vjW49yx/A5SxqX4uiTVhrTabYq9RYO+deSvy+elUS8x/P7hTPnrFL898VucU8zap9dSsLEAW6WN8PhwDi47CNQ9FzhlXAqJIxNJujSJ0oOlLLx/IZP+PInLfnSZjytvuqqTVfwh6g8A/NL80sfVqLZEL5i6SCWNTGLo3UPZ+PeNHFp5iB5X9iBheAL9Z/Z36x7krhhjOJV3isIdhVSWVBIeH07SpUn11wd4W9HOIuaPn09NeQ3Jo5IJCg+ieE8xACN/NJLL//fyBs8CKNpVdwvs4Mhgn9TbUiEdv3ood82ZGp8dd9W+aND7uekvTKfb5d3YPHczm+ZuYv2z69k8djPfXvltt9Yv2VdC/vp8Th46WXcSeP0Rzhw702CZwLBA0u9KZ+xjYwmLDfPAp2jIYXdwfMtxtr+1nayXs7AGWpmTOcetm3kdWll3Q67uV3T3dJkeM/JHI1n39DpsVTYNeuUWDXo/JyIMvn0wg28fjMPu4IvffMHKX63k2JZj572S0jgMH97zIdkvZ9fPi+4bTc+JPUkckUj8kHjCYsMoPVjKjrd21J8MTh6dTMyAGGpO1xAWF0bqDal07t2Z0JjQFl8NXFVWxcIHFrLr/V3YqmxYAiz0uroXk/40ye07Np79j2jj3zcy+ZnJLarHV/Yt2kfCsISL8ryLah7to7/IVBRX8HTS00T3iybt1jQ6Jnckfkg8Xfp3aRDEexft5Y2pb5BxfwbDvzuciMQIOnTq0Oh2T+w+wbY3trF34V7KDpZRWVLZ4P2giCD6TOnDsPuGkTIupVmh//qU1znw+QGG3jOUpJFJ9Jnap1mPaFz00CI2/HUD9225j7hBcU1e39c+mvMR217fxsNHH263XVCq9enJWNVA1itZrPrtKkoPlNbPi0iMoOdVPekxoQfR/aJZ/vhy8r7M4yfFPyEgpOl/+FWfquZk3klOHjpJyb4SCncUsvOdnVSVVhE/JJ5bP76VyMTI+uUrTlRQuKOQ6D7RLi8Y2/3Bbv5z/X8Y/5vxjH1sbPM+uFPx3mL+1vdvzHhpRrt8NN6RjUeYN2Iel//8cib8doKvy1FthJ6MVQ2k35lO+p3pVJ2s4vSR0+StyePA0gPkfJzDlvlb6pe7+pmrmxXyUHeyM3ZALLEDYuvnTX5mMjv+s4OP7/uYVU+uYtrfp1FZUsmyx5eR/XI2tiobUHebiJj+MdiqbNScqaGqrIqCzALi0+MZ+cORLfvwQKeenbAGWTmx+0SLt+ULicMT6XFlD3Yv2K1Br9yiQX8RC+kYQkjHEGJSYxh691CMw3B823FO5Z2iU69Ozb5RVmMCOwQy5NtD2PXeLrJeysJWZWPfwn1UnKhg8LcH039mfwq3FbL3k70UbCogICSAoLAgAjoEcNUfr2LEAyMIDG3eaKFzWawWYgbEsG/RPib8dkKbvZL42JZjrP3TWqL7RRPaJZTI5EiCwoMoyy3j6OajRPeJ9nWJqp3QrhvldaePnmbxDxazb/E+uvTrwrTnp9E1vatXa9jx9g7evfldYgfGMv356SSPSr7wSl706qRXObD0QKPvd+rVidmfzqZz785erEq1Zdp1o9qUiK4R3PifG31aw4CbBhAQEsAn93/Cy6NfJm5wHF2HdSU4MrjuKyIYa5CVpJFJJAxP8OrzA45mHeXA0gMEhATwoyM/Iig8iIriCkoPlGKvthPaJZTYtFi/vQBOtb4LBr2IhABfAMHO5d81xvxSRIZQ90DwEMAG3G+M2eBi/VzgNGAHbI39j6OUt/Wb0Y+UcSls+fcWtr+5nf2L91Nzuobq09UNbpfQdWhXLn/scvpf398rdVUUVQAwe/FsOnSuG+kU0TVC71mkms2dFn01MMEYc0ZEAoHVIrII+DXwK2PMIhGZCvwRGNfINsYbY9rnmS/l14Ijgxnx4AhGPDiifp5xGGoraqk5U8PuD3az/q/reXvm20z9x1SGf3e4x2s6tuUYQP3DupVqqQs+5sjUOXspZKDzyzi/zo6P6wgUeKRCpbxMLEJQeBDh8eFk3JfBvZvvpe/0viy8fyFLf7IUe63do/vfPHcz3cd2JyolyqP7URcPt55nJyJWEckGCoGlxpj1wA+Ap0QkD/gT8GgjqxtgiYhsEpE5LS9ZKe8KCAngpvdvYth9w1jz1BpeGvkSuxbsorayttX3ZauycSr/VP2TyJRqDW4FvTHGbowZAiQBI0QkDfgu8ENjTDLwQ+ClRlYfbYwZCkwBHhARl1e7iMgcEckUkcyioqKmfg6lPMoaaGX6P6cz691ZnC44zdsz3+bPXf/M2r+sbdX9bH1tK7YqG/1m9GvV7aqLW5OHV4rIL4Fy4HEgyhhjpG5IwkljTOQF1n0COGOM+dP5ltPhlaots9fayV2ey9o/r2X/kv3cveFuEocntni7FcUV/HvCv6mtrOXBPQ96daSPav9aNLxSRGKAWmNMmYh0AK4C/kBdn/wVwApgArDXxbphgMUYc9r5ehJ1J3GVaresgVZ6TepFwvAEnop5it0f7L5g0BtjKNlXwpH1R8hfl8+x7GNEdY/CEmjhVP4pTh85Tcn+EozdcMt/b9GQV63KnVE3XYH5ImKlrqvnbWPMxyJSBjwrIgFAFTAHQEQSgHnGmKlAHLDA+UMbALxhjPm09T+GUt7XoVMHUsalkDUvi/Q70xtcvHQy7yR5X+aRtyaPo5uPcnzrcWpO1wAQFB5E3OA4clfkIlYhMjGS2LRY+l3Xj4G3DmyXN1pTbZteGatUC+StyWP+hPnYq+0ERwbTIboDVaVVVJVVARAYGkj8kHjihsTRNb0riZcmEpMag8Xq1ukxpdymV8Yq5SHJo5L5/v7vs/2t7Zw8dJLK4kpCOocQ3Sea5NHJxA2Ka3cPIlf+R4NeqRaKTIxk1MOjfF2GUo3Svx+VUsrPadArpZSf06BXSik/p0GvlFJ+ToNeKaX8nAa9Ukr5OQ16pZTycxr0Sinl59rkLRBEpAg4BHQB9MlUrumxaZweG9f0uDTOH45Nd2NMjKs32mTQnyUimfqMWdf02DROj41relwa5+/HRrtulFLKz2nQK6WUn2vrQT/X1wW0YXpsGqfHxjU9Lo3z62PTpvvolVJKtVxbb9ErpZRqIQ16pZTyc20y6EVkiIisE5FsEckUkRHO+SkiUumcny0iz/u6Vm9q7Lic8343ETkjIo/4qkZfOc/PzIhzfl62iMj1vq7V285zbCaKyCYR2eb8PsHXtXrbeY5NtIgsd/4+/c3XdbaYMabNfQFLgCnO11OBFc7XKcB2X9fX1o7LOe+/B7wDPOLrWtvKsQFCgQDn665A4dnpi+XrPMcmHUhwvk4Djvi61jZ0bMKAMcB9wN98XWdLv9rqowQNEOl83REo8GEtbUmjx0VErgMOAOXeL6tNcHlsjDEV5ywT4lzuYtPYsck6Z5kdQIiIBBtjqr1cny81dmzKgdUi0ttXhbWmNjnqRkT6A4sBoa57aZQx5pCIpFD3A5kDnAIeM8as8lmhXnae4xIGfAZMBB4Bzhhj/uS7Sr2vsWPjfO9S4GWgO3C7MWaBzwr1gfMdm3OWuRG4zxhzlQ9K9JkLHRsR+TaQYYx50DcVtg6ftehF5DMg3sVbPweuBH5ojHlPRG4CXgKuAo4C3YwxxSIyDPhARAYYY055rXAPa+Zx+RXwtDHmjIh4r1gva+axwRizHhjg/KWeLyKLjDFV3qrbG5p7bJzrDgD+AEzyRq3e1pJj4y/aaov+JBBljDFSl1wnjTGRLpZbQV1/dKa3a/SFxo6LiKwCkp2LRQEO4BfGmPZ/EslNTfiZWQ78+GL5mYHzHxsRSQKWAXcaY770ZZ2+cKGfG39p0bfJUTfU9ZNd4Xw9AdgLICIxImJ1vu4J9KGuX/pi4fK4GGMuN8akGGNSgGeAJy+mkHdq7Gemh4gEOF93B/oBub4o0IcaOzZRwCfAoxdjyDu5PDb+pq2ejL0HeNb5C1oFzHHOHwv8WkRsgJ26PsUSH9XoC40dF9X4sRkD/ExEaqn7S+d+Y0x7vx1tUzV2bB4EegOPi8jjznmTjDGFPqjRVxr9nRKRXOpO1AY5BztMMsbs9EWRLdUmu26UUkq1nrbadaOUUqqVaNArpZSf06BXSik/p0GvlFJ+ToNeKaX8nAa9Ukr5OQ16pZTyc/8PsPNI0MZi/joAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "we will redo tract numbers  [0]\n"
     ]
    }
   ],
   "source": [
    "# Looking for nonconvergers ...  Run even if none observed, just to check  \n",
    "redo = [0]\n",
    "counter = 0.\n",
    "for t in range (nTracts) :\n",
    "    if wrongPop[t] > 0 :\n",
    "        ratio = round(wrongPop[t]/avgDistrictPop,2)\n",
    "        tractX = tractGeom[t].centroid.x\n",
    "        tractY = tractGeom[t].centroid.y        \n",
    "        print(t, ratio,\"(\",tractX,tractY,\")\",HDvGOP[t], \"t, pop/target,(x,y), pctR\")\n",
    "        if (ratio < 0.9 or ratio > 1.1) :  #these we will redo\n",
    "            plt.text(tractGeom[t].centroid.x, tractGeom[t].centroid.y,ratio, fontsize=14)\n",
    "            if counter == 0 :  #first redo\n",
    "                redo = [t]\n",
    "            else :\n",
    "                redo.append(t)\n",
    "            counter+= 1\n",
    "        else: #show these milder offenders on the map in a smaller font            \n",
    "            plt.text(tractGeom[t].centroid.x, tractGeom[t].centroid.y,ratio, fontsize=9)\n",
    "\n",
    "x,y = tractMAP.exterior.xy\n",
    "plt.plot(x,y,c=\"purple\")\n",
    "plt.show()\n",
    "print(\"we will redo tract numbers \",redo)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "be6e965b-4ca8-4af2-8031-63132fbb939d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "131 0.7982355601927269 571 pop,GOP 0.8791593695271454\n",
      "427 0.7866152367239062 785 pop,GOP 0.7821656050955414\n",
      "447 0.7670261096118395 593 pop,GOP 0.7133220910623946\n",
      "1176 0.7241192529821533 1031 pop,GOP 0.7381183317167799\n",
      "1186 0.7857863412609611 1031 pop,GOP 0.4626576139670223\n",
      "1204 0.7487981976215147 1039 pop,GOP 0.7083734359961501\n",
      "1206 0.7642464291391796 672 pop,GOP 0.6979166666666666\n",
      "1207 0.7351026414964075 927 pop,GOP 0.7108953613807982\n",
      "1208 0.6991078297360552 792 pop,GOP 0.7727272727272727\n",
      "1212 0.7597425815184671 564 pop,GOP 0.7358156028368794\n",
      "1214 0.7572214626889839 1054 pop,GOP 0.7267552182163188\n",
      "1227 0.7332672689803568 931 pop,GOP 0.682062298603652\n",
      "1229 0.71384176104859 716 pop,GOP 0.7276536312849162\n",
      "1231 0.7684453274004703 409 pop,GOP 0.6381418092909535\n",
      "1233 0.7868263853156856 713 pop,GOP 0.6942496493688639\n",
      "1248 0.787394161399318 887 pop,GOP 0.7395715896279594\n",
      "1255 0.6985931930356668 1128 pop,GOP 0.7845744680851063\n",
      "1256 0.7621815693807668 859 pop,GOP 0.6949941792782305\n",
      "1289 0.7905955381419131 1128 pop,GOP 0.6471631205673759\n",
      "1295 0.7171135667583683 578 pop,GOP 0.7301038062283737\n",
      "1307 0.7057748180734387 1249 pop,GOP 0.799839871897518\n",
      "1321 0.7480244157253298 991 pop,GOP 0.6841574167507568\n",
      "1335 0.7975755871405763 776 pop,GOP 0.7061855670103093\n",
      "1348 0.7525831988390093 1093 pop,GOP 0.6697163769441903\n",
      "1368 0.6822236511426846 912 pop,GOP 0.6469298245614035\n",
      "1373 0.7235089953544899 763 pop,GOP 0.601572739187418\n",
      "1376 0.7100063565133362 643 pop,GOP 0.6314152410575428\n",
      "1402 0.7470173890379672 907 pop,GOP 0.7221609702315325\n",
      "1407 0.7759263207068133 728 pop,GOP 0.6909340659340659\n",
      "1411 0.6925350733609699 1238 pop,GOP 0.8061389337641357\n",
      "1428 0.683420003619258 396 pop,GOP 0.7474747474747475\n",
      "1432 0.7745035708248039 804 pop,GOP 0.6417910447761194\n",
      "1439 0.7571232280186543 1074 pop,GOP 0.6908752327746741\n",
      "1446 0.7864960412978269 803 pop,GOP 0.6811955168119551\n",
      "1453 0.7966758757737407 770 pop,GOP 0.6805194805194805\n",
      "1459 0.7616424599714118 855 pop,GOP 0.6818713450292397\n",
      "1462 0.7321059174911361 496 pop,GOP 0.7883064516129032\n",
      "1474 0.7412925665186845 1109 pop,GOP 0.7619477006311993\n",
      "1485 0.7435518164638704 970 pop,GOP 0.7865979381443299\n",
      "1492 0.7262396771119194 652 pop,GOP 0.745398773006135\n",
      "1497 0.7228676293917013 978 pop,GOP 0.7607361963190185\n",
      "1505 0.7440232931491231 897 pop,GOP 0.7692307692307693\n",
      "1513 0.742741183364623 1296 pop,GOP 0.6658950617283951\n",
      "1523 0.7925954647851247 665 pop,GOP 0.8030075187969925\n",
      "1525 0.6811345111675955 333 pop,GOP 0.7627627627627628\n",
      "1531 0.7035407752554181 845 pop,GOP 0.7775147928994083\n",
      "1534 0.7976925805371825 1016 pop,GOP 0.7578740157480315\n",
      "1535 0.7085251690114422 1037 pop,GOP 0.7184185149469624\n",
      "1543 0.6781758882120897 613 pop,GOP 0.8156606851549756\n",
      "1549 0.7478729391898423 920 pop,GOP 0.7543478260869565\n",
      "1550 0.7114878483857523 624 pop,GOP 0.7323717948717948\n",
      "1555 0.7825699092149703 804 pop,GOP 0.7412935323383084\n",
      "1557 0.7824178882241978 935 pop,GOP 0.6770053475935829\n",
      "1561 0.7616329934366706 963 pop,GOP 0.7850467289719626\n",
      "1564 0.7511062713795879 815 pop,GOP 0.7153374233128834\n",
      "1579 0.6825142212419553 1076 pop,GOP 0.7592936802973977\n",
      "1582 0.740748632917184 602 pop,GOP 0.7724252491694352\n",
      "1590 0.7949175648738049 650 pop,GOP 0.676923076923077\n",
      "1603 0.7697458272903794 857 pop,GOP 0.6581096849474912\n",
      "1616 0.7729104889023846 930 pop,GOP 0.6924731182795699\n",
      "1646 0.7132235102712946 809 pop,GOP 0.761433868974042\n",
      "1651 0.7295214627220507 885 pop,GOP 0.735593220338983\n",
      "1696 0.751130993301061 491 pop,GOP 0.6619144602851323\n",
      "1711 0.7908596928825979 931 pop,GOP 0.6122448979591837\n",
      "1717 0.7780840011742705 964 pop,GOP 0.6763485477178424\n",
      "1724 0.7843899146082424 614 pop,GOP 0.13192182410423453\n",
      "1773 0.7989095644419005 514 pop,GOP 0.28599221789883267\n",
      "1774 0.7959453911040151 440 pop,GOP 0.3431818181818182\n",
      "1788 0.7811353969571295 463 pop,GOP 0.6220302375809935\n",
      "1791 0.7610082098439368 274 pop,GOP 0.5693430656934306\n",
      "1805 0.7447520801328412 766 pop,GOP 0.6514360313315927\n",
      "1806 0.7584281989827215 405 pop,GOP 0.6271604938271605\n",
      "1825 0.7808537468956127 1041 pop,GOP 0.6695485110470701\n",
      "1830 0.7751819162144182 538 pop,GOP 0.620817843866171\n",
      "1833 0.7916590471759246 512 pop,GOP 0.091796875\n",
      "1853 0.7613492597133379 642 pop,GOP 0.6588785046728972\n",
      "1854 0.7520067876011944 856 pop,GOP 0.5712616822429907\n",
      "1888 0.7793239303083165 681 pop,GOP 0.7738619676945668\n",
      "1891 0.755293396970946 655 pop,GOP 0.7129770992366412\n",
      "1892 0.7535260730872736 583 pop,GOP 0.6878216123499142\n",
      "1908 0.786918196566487 441 pop,GOP 0.5374149659863946\n",
      "1909 0.7583100484112525 667 pop,GOP 0.5592203898050975\n",
      "1910 0.7768713399328795 680 pop,GOP 0.5926470588235294\n",
      "1911 0.7539574495909321 566 pop,GOP 0.46996466431095407\n",
      "1912 0.793371200992874 695 pop,GOP 0.5985611510791367\n",
      "1913 0.7908119205369145 413 pop,GOP 0.4939467312348668\n",
      "1914 0.7669873656085471 485 pop,GOP 0.6020618556701031\n",
      "1916 0.7826995146055651 502 pop,GOP 0.7231075697211156\n",
      "1919 0.7983020260397468 904 pop,GOP 0.5066371681415929\n",
      "1934 0.7910460835961906 856 pop,GOP 0.6670560747663551\n",
      "1935 0.775641342468077 631 pop,GOP 0.6830427892234548\n",
      "1970 0.7711875270844263 754 pop,GOP 0.6962864721485411\n",
      "1971 0.7799258749584114 777 pop,GOP 0.6435006435006435\n",
      "1972 0.7544322925562956 850 pop,GOP 0.6082352941176471\n",
      "1973 0.7738213011321108 440 pop,GOP 0.5363636363636364\n",
      "1974 0.7810891196692418 692 pop,GOP 0.5592485549132948\n",
      "1975 0.77402824176523 481 pop,GOP 0.577962577962578\n",
      "1976 0.7830083504528169 472 pop,GOP 0.815677966101695\n",
      "1977 0.794962169964947 464 pop,GOP 0.7241379310344828\n",
      "2007 0.7669690735149102 732 pop,GOP 0.7144808743169399\n",
      "2095 0.7552687307333744 593 pop,GOP 0.5531197301854974\n",
      "2096 0.7611236524594399 530 pop,GOP 0.40943396226415096\n",
      "2097 0.75563027381647 615 pop,GOP 0.616260162601626\n",
      "2117 0.7961914814346107 323 pop,GOP 0.42105263157894735\n",
      "2118 0.7955283093223158 455 pop,GOP 0.4945054945054945\n",
      "2122 0.7890961592108772 437 pop,GOP 0.6155606407322655\n",
      "2123 0.7712764679987126 319 pop,GOP 0.567398119122257\n",
      "2130 0.7912478687128536 1109 pop,GOP 0.6158701532912534\n",
      "2161 0.7744445748105904 291 pop,GOP 0.4570446735395189\n",
      "2180 0.7874951413975296 347 pop,GOP 0.07492795389048991\n",
      "2316 0.7913694014244496 405 pop,GOP 0.6567901234567901\n",
      "2317 0.7716715446553742 575 pop,GOP 0.6765217391304348\n",
      "2319 0.7925373041217851 351 pop,GOP 0.7236467236467237\n",
      "2320 0.7858065581559527 294 pop,GOP 0.7040816326530612\n",
      "2335 0.7895988511938791 263 pop,GOP 0.7072243346007605\n",
      "2336 0.7915914087840092 636 pop,GOP 0.7028301886792453\n",
      "2337 0.7889934143667152 755 pop,GOP 0.7245033112582782\n",
      "2338 0.7949124722376166 404 pop,GOP 0.6955445544554455\n",
      "2341 0.7820574841512449 456 pop,GOP 0.7039473684210527\n",
      "2344 0.7948786496493166 229 pop,GOP 0.7292576419213974\n",
      "2349 0.794425516404213 232 pop,GOP 0.7155172413793104\n",
      "2379 0.7851287613742365 585 pop,GOP 0.7213675213675214\n",
      "2380 0.7891169993714958 369 pop,GOP 0.7018970189701897\n",
      "2386 0.792258475871116 481 pop,GOP 0.6361746361746362\n",
      "2877 0.7384220252017586 668 pop,GOP 0.4505988023952096\n",
      "2879 0.7675625202602435 729 pop,GOP 0.41838134430727025\n",
      "2883 0.7985738907288927 389 pop,GOP 0.43958868894601544\n",
      "2884 0.7982902783637644 464 pop,GOP 0.10344827586206896\n",
      "2885 0.794313094466414 421 pop,GOP 0.3491686460807601\n",
      "2886 0.766052561264307 159 pop,GOP 0.31446540880503143\n",
      "2890 0.7565322777203534 305 pop,GOP 0.14098360655737704\n",
      "2891 0.760146430919513 906 pop,GOP 0.4878587196467991\n",
      "2892 0.7907005029278719 759 pop,GOP 0.42292490118577075\n",
      "2893 0.780836279343531 1059 pop,GOP 0.5722379603399433\n",
      "2895 0.7676836675067664 590 pop,GOP 0.34915254237288135\n",
      "2898 0.7406265417870972 608 pop,GOP 0.4720394736842105\n",
      "2899 0.7524475327151962 540 pop,GOP 0.45925925925925926\n",
      "2901 0.7933160636226587 679 pop,GOP 0.2812960235640648\n",
      "2902 0.7904708932308754 339 pop,GOP 0.02359882005899705\n",
      "2903 0.7589061995708644 419 pop,GOP 0.18138424821002386\n",
      "2904 0.7637616379218575 551 pop,GOP 0.43920145190562615\n",
      "2905 0.7400456545316082 447 pop,GOP 0.3624161073825503\n",
      "2906 0.7914698288530032 387 pop,GOP 0.1343669250645995\n",
      "2907 0.7580396334004217 419 pop,GOP 0.3532219570405728\n",
      "2911 0.7590753271432088 585 pop,GOP 0.49401709401709404\n",
      "2912 0.7593131463286363 566 pop,GOP 0.5618374558303887\n",
      "2914 0.7879515914380564 220 pop,GOP 0.05\n",
      "2916 0.7583554009771488 560 pop,GOP 0.44107142857142856\n",
      "2917 0.7551799023060247 537 pop,GOP 0.4245810055865922\n",
      "2919 0.7439609893101465 1028 pop,GOP 0.4571984435797665\n",
      "2920 0.7485826217799395 652 pop,GOP 0.3834355828220859\n",
      "2926 0.749387607748308 1250 pop,GOP 0.4896\n",
      "2927 0.723588077271431 880 pop,GOP 0.5170454545454546\n",
      "2928 0.7383571710431394 681 pop,GOP 0.5168869309838473\n",
      "2929 0.7483946411116917 871 pop,GOP 0.4087256027554535\n",
      "2930 0.7535454274850933 782 pop,GOP 0.4859335038363171\n",
      "2931 0.7454071102093897 765 pop,GOP 0.4444444444444444\n",
      "2932 0.7505395470654879 679 pop,GOP 0.4329896907216495\n",
      "2936 0.7508794147144878 670 pop,GOP 0.46417910447761196\n",
      "2937 0.7880613202393565 851 pop,GOP 0.5205640423031728\n",
      "2938 0.7599119473315973 819 pop,GOP 0.536019536019536\n",
      "2939 0.7908043865787205 1063 pop,GOP 0.5860771401693321\n",
      "2942 0.7942920512706078 814 pop,GOP 0.601965601965602\n",
      "2945 0.7577174592821315 742 pop,GOP 0.38409703504043125\n",
      "2948 0.7584481532861496 425 pop,GOP 0.47294117647058825\n",
      "2949 0.7705706553970075 467 pop,GOP 0.09207708779443255\n",
      "2950 0.7727798267368676 671 pop,GOP 0.3114754098360656\n",
      "2951 0.764890673867581 600 pop,GOP 0.275\n",
      "2952 0.7748438381137307 604 pop,GOP 0.3526490066225166\n",
      "2953 0.7796451661746684 383 pop,GOP 0.3237597911227154\n",
      "2954 0.7907525591574198 773 pop,GOP 0.4489003880983182\n",
      "2962 0.7801832224430976 535 pop,GOP 0.45607476635514016\n",
      "2975 0.7518932016114469 1059 pop,GOP 0.29933899905571293\n",
      "2976 0.7734988968235544 672 pop,GOP 0.37648809523809523\n",
      "2977 0.7388656791695399 661 pop,GOP 0.37972768532526474\n",
      "2980 0.7762954823262642 669 pop,GOP 0.28400597907324365\n",
      "2981 0.7822693755847975 515 pop,GOP 0.15728155339805824\n",
      "2982 0.7532137128196158 507 pop,GOP 0.3708086785009862\n",
      "2983 0.7607777068488447 1055 pop,GOP 0.3109004739336493\n",
      "2984 0.7712229506148465 488 pop,GOP 0.14959016393442623\n",
      "2985 0.7607048569661949 423 pop,GOP 0.09929078014184398\n",
      "2986 0.7605581747019711 537 pop,GOP 0.11731843575418995\n",
      "2987 0.7555251094108191 484 pop,GOP 0.05165289256198347\n",
      "2991 0.7928225781889096 632 pop,GOP 0.24050632911392406\n",
      "2992 0.7461037769098089 537 pop,GOP 0.5065176908752328\n",
      "2998 0.7493052825592125 711 pop,GOP 0.47538677918424754\n",
      "2999 0.7335625923830355 593 pop,GOP 0.433389544688027\n",
      "3002 0.7419160086317935 726 pop,GOP 0.4228650137741047\n",
      "3005 0.7524347870626518 680 pop,GOP 0.48823529411764705\n",
      "3006 0.750479844618711 591 pop,GOP 0.4500846023688663\n",
      "3007 0.7761421711388469 455 pop,GOP 0.12087912087912088\n",
      "3026 0.7568205515517982 787 pop,GOP 0.5031766200762389\n",
      "3027 0.7491172504370143 845 pop,GOP 0.4863905325443787\n",
      "3030 0.7556980517509945 736 pop,GOP 0.46603260869565216\n",
      "3031 0.7575680149215612 811 pop,GOP 0.4525277435265105\n",
      "3032 0.7441243466377986 1140 pop,GOP 0.5543859649122806\n",
      "3039 0.7394322045810464 1067 pop,GOP 0.5248359887535146\n",
      "3040 0.7318085361849868 1044 pop,GOP 0.4904214559386973\n",
      "3041 0.7429540691456071 855 pop,GOP 0.4842105263157895\n",
      "3042 0.740929954482444 744 pop,GOP 0.46908602150537637\n",
      "3043 0.7407467525506224 793 pop,GOP 0.5220680958385876\n",
      "3044 0.7457800838493229 1045 pop,GOP 0.3952153110047847\n",
      "3053 0.7528888925829257 808 pop,GOP 0.5\n",
      "3054 0.7358915805667808 1178 pop,GOP 0.5492359932088285\n",
      "3055 0.7551026763223483 812 pop,GOP 0.4433497536945813\n",
      "3056 0.7547110477550797 567 pop,GOP 0.5061728395061729\n",
      "3057 0.7475985621788189 906 pop,GOP 0.3973509933774834\n",
      "3058 0.719074375460855 1112 pop,GOP 0.5692446043165468\n",
      "3059 0.7510623497796762 728 pop,GOP 0.4876373626373626\n",
      "3060 0.7322119254966208 867 pop,GOP 0.5628604382929643\n",
      "3061 0.7599246875945815 877 pop,GOP 0.5313568985176739\n",
      "3062 0.7564078695044467 892 pop,GOP 0.40358744394618834\n",
      "3063 0.7495555812659142 1060 pop,GOP 0.3452830188679245\n",
      "3066 0.768464278448094 741 pop,GOP 0.5087719298245614\n",
      "3067 0.7512636663288164 885 pop,GOP 0.46214689265536724\n",
      "3068 0.7663474791942402 945 pop,GOP 0.5693121693121693\n",
      "3069 0.7533466118767194 745 pop,GOP 0.4657718120805369\n",
      "3070 0.7577786028699544 1032 pop,GOP 0.375968992248062\n",
      "3072 0.7745777470036989 1003 pop,GOP 0.6699900299102692\n",
      "3073 0.7859324512251666 1150 pop,GOP 0.5182608695652174\n",
      "3074 0.7984506405279127 797 pop,GOP 0.465495608531995\n",
      "3075 0.795079846468077 514 pop,GOP 0.5817120622568094\n",
      "3076 0.774087400288833 689 pop,GOP 0.4716981132075472\n",
      "3079 0.7919075199105795 856 pop,GOP 0.4824766355140187\n",
      "3080 0.7936549795480858 984 pop,GOP 0.43902439024390244\n",
      "3084 0.7646263523627822 749 pop,GOP 0.4165554072096128\n",
      "3086 0.7613238839292557 676 pop,GOP 0.27514792899408286\n",
      "3087 0.7764737458196801 486 pop,GOP 0.07818930041152264\n",
      "3088 0.768064527827555 318 pop,GOP 0.36792452830188677\n",
      "3089 0.7620103056416663 762 pop,GOP 0.41732283464566927\n",
      "3091 0.794989070453708 527 pop,GOP 0.3757115749525617\n",
      "3097 0.796366246051287 499 pop,GOP 0.38276553106212424\n",
      "3098 0.7860961763480376 400 pop,GOP 0.3125\n",
      "3099 0.7827567073100422 495 pop,GOP 0.3292929292929293\n",
      "3102 0.7765549911717456 577 pop,GOP 0.09878682842287695\n",
      "3109 0.7561979681849048 740 pop,GOP 0.4689189189189189\n",
      "3110 0.7574941456284661 574 pop,GOP 0.4843205574912892\n",
      "3111 0.7592942398534442 597 pop,GOP 0.5142378559463987\n",
      "3112 0.7581737351711201 354 pop,GOP 0.4604519774011299\n",
      "3113 0.7549394944297587 766 pop,GOP 0.4556135770234987\n",
      "3114 0.7441828100578998 609 pop,GOP 0.3842364532019704\n",
      "3115 0.7414334023222536 657 pop,GOP 0.3181126331811263\n",
      "3116 0.7726261671721351 330 pop,GOP 0.006060606060606061\n",
      "3117 0.7801806275468028 267 pop,GOP 0.03745318352059925\n",
      "3118 0.7680996225049912 627 pop,GOP 0.10207336523125997\n",
      "3119 0.7713704848184433 510 pop,GOP 0.2901960784313726\n",
      "3122 0.7531493085756036 724 pop,GOP 0.3660220994475138\n",
      "3123 0.7549238976828075 711 pop,GOP 0.37834036568213786\n",
      "3124 0.7561025108568756 723 pop,GOP 0.38865836791147995\n",
      "3125 0.7498186039416228 620 pop,GOP 0.3161290322580645\n",
      "3126 0.7872585931162691 281 pop,GOP 0.03914590747330961\n",
      "3127 0.7952315862520671 417 pop,GOP 0.33093525179856115\n",
      "3130 0.7522351196751703 750 pop,GOP 0.2693333333333333\n",
      "3131 0.7561441285851085 537 pop,GOP 0.3985102420856611\n",
      "3132 0.7707060386941815 664 pop,GOP 0.40813253012048195\n",
      "3136 0.769197713557413 486 pop,GOP 0.43415637860082307\n",
      "3137 0.751043863823777 652 pop,GOP 0.36809815950920244\n",
      "3138 0.7865508801996127 215 pop,GOP 0.09767441860465116\n",
      "3139 0.7999254813330993 546 pop,GOP 0.11721611721611722\n",
      "3142 0.7640581248069311 610 pop,GOP 0.22459016393442624\n",
      "3143 0.770065222072253 609 pop,GOP 0.3284072249589491\n",
      "3148 0.7440340534196713 733 pop,GOP 0.35470668485675305\n",
      "3154 0.764917252025543 571 pop,GOP 0.38704028021015763\n",
      "3155 0.7682654342741464 517 pop,GOP 0.38104448742746616\n",
      "3156 0.7616045401870891 500 pop,GOP 0.25\n",
      "3157 0.7542779644769052 595 pop,GOP 0.09915966386554621\n",
      "3159 0.7639769144531995 779 pop,GOP 0.42618741976893454\n",
      "3160 0.7792227327237926 638 pop,GOP 0.26959247648902823\n",
      "3161 0.7884322441636572 695 pop,GOP 0.16258992805755396\n",
      "3162 0.7559971001425912 1065 pop,GOP 0.3474178403755869\n",
      "3163 0.7913052527292477 396 pop,GOP 0.4797979797979798\n",
      "3165 0.7594225888228049 703 pop,GOP 0.10810810810810811\n",
      "3166 0.7740931692584628 607 pop,GOP 0.13838550247116968\n",
      "3167 0.7848317522904328 237 pop,GOP 0.29957805907172996\n",
      "3168 0.7733641889008296 615 pop,GOP 0.3821138211382114\n",
      "3173 0.7517266031935053 757 pop,GOP 0.5284015852047557\n",
      "3178 0.7484263266086043 585 pop,GOP 0.4222222222222222\n",
      "3179 0.7466196193266628 671 pop,GOP 0.488822652757079\n",
      "3184 0.7716617879993006 651 pop,GOP 0.21505376344086022\n",
      "3186 0.7427811336604764 562 pop,GOP 0.42526690391459077\n",
      "3187 0.7753726994459272 315 pop,GOP 0.047619047619047616\n",
      "5231 0.7994695903307862 467 pop,GOP 0.4411134903640257\n",
      "5243 0.7900155357535501 804 pop,GOP 0.4253731343283582\n",
      "5244 0.7971011079478216 700 pop,GOP 0.4042857142857143\n",
      "5245 0.797896850097721 867 pop,GOP 0.46943483275663206\n",
      "5265 0.7761880507032406 743 pop,GOP 0.41722745625841184\n",
      "5324 0.7734785555418109 594 pop,GOP 0.46296296296296297\n",
      "5453 0.7697425272061217 287 pop,GOP 0.7770034843205574\n",
      "5459 0.7885748203392636 741 pop,GOP 0.7638326585695007\n",
      "5517 0.7601982585927216 395 pop,GOP 0.7544303797468355\n",
      "6456 0.7835905313014846 841 pop,GOP 0.8513674197384067\n",
      "6457 0.783562537527713 412 pop,GOP 0.8300970873786407\n",
      "6541 0.7974695131520485 474 pop,GOP 0.8628691983122363\n",
      "6542 0.7875434656394172 488 pop,GOP 0.8176229508196722\n",
      "6543 0.7869617034585557 427 pop,GOP 0.8313817330210773\n",
      "6675 0.781390140287923 838 pop,GOP 0.42601431980906923\n",
      "6676 0.7654176576534749 758 pop,GOP 0.41160949868073876\n",
      "6805 0.7864560903806714 684 pop,GOP 0.4444444444444444\n",
      "6808 0.7557419621847674 539 pop,GOP 0.44712430426716143\n",
      "6810 0.7769531364989227 1032 pop,GOP 0.43507751937984496\n",
      "6828 0.793737445976132 346 pop,GOP 0.5433526011560693\n",
      "7065 0.7974749697721785 781 pop,GOP 0.39436619718309857\n",
      "7086 0.7677702228728073 480 pop,GOP 0.41458333333333336\n",
      "7088 0.7608567647916259 823 pop,GOP 0.4362089914945322\n",
      "7285 0.7860735054909856 535 pop,GOP 0.45981308411214955\n",
      "7286 0.7946607602719135 490 pop,GOP 0.4\n",
      "7287 0.7941051246023564 734 pop,GOP 0.46185286103542234\n",
      "7289 0.7908495745573908 775 pop,GOP 0.4270967741935484\n",
      "8873 0.7939721058935303 1061 pop,GOP 0.7210179076343073\n",
      "8879 0.6926089578674047 480 pop,GOP 0.7458333333333333\n",
      "8880 0.6902730919149955 514 pop,GOP 0.745136186770428\n",
      "8881 0.7509383347155822 943 pop,GOP 0.8048780487804879\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plotting underused PRECINCTS\n",
    "for p in range (nPrecincts) :\n",
    "    if precinctUse[p] < 0.8 and isSkippedPrecinct[p] == 0 and vtdPop[p] > 0: #ignore suppressed precincts\n",
    "        print(p,precinctUse[p], vtdPop[p],\"pop,GOP\",vtdGOP[p])\n",
    "        pU = round(precinctUse[p],3)\n",
    "        tractX = vtdGeom[p].centroid.x\n",
    "        tractY = vtdGeom[p].centroid.y        \n",
    "        # print(t, ratio,\"(\",tractX,tractY,\")\",HDvGOP[t], \"t, pop/target,(x,y), pctR\")\n",
    "        plt.text(vtdGeom[p].centroid.x, vtdGeom[p].centroid.y,pU, fontsize=9)\n",
    "        if notPolyVTD[p] == 0 :\n",
    "            x,y = vtdGeom[p].exterior.xy\n",
    "            plt.plot(x,y)\n",
    "        else :\n",
    "            for geom in vtdGeom[p].geoms:\n",
    "                x,y = geom.exterior.xy\n",
    "                plt.plot(x,y)\n",
    "\n",
    "x,y = wholeMAP.exterior.xy\n",
    "plt.plot(x,y,c=\"purple\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 350,
   "id": "37f47a77-d58e-4b4c-be60-676819128e21",
   "metadata": {},
   "outputs": [],
   "source": [
    "# (OPTIONAL) IF WE STOPPED AND RESTARTED, read the data back in:  #NEED TO UPDATE THIS W/ANGLES, RADII\n",
    "import pandas as pd\n",
    "infilename = \"FL_nD28tol0.01nW4.csv\"\n",
    "df2 = pd.read_csv(\"state_HD_output/\"+infilename)\n",
    "HDvPop = df2[\"HD-pop\"]\n",
    "HDvHisp = df2[\"HDvHisp\"]\n",
    "HDvGOP = df2['HDvGOP']\n",
    "HDweight = df2['HDwt']\n",
    "HDarea = df2['HDarea']\n",
    "tractLoopCounter = df2['Loops']\n",
    "tractPop = df2['tractPop']\n",
    "tractCPx = df2['centroid x']\n",
    "tractCPy = df2['centroid y']\n",
    "tractUse = df2['tractUse']\n",
    "# nearEdge = df2['nearEdge']   #add this back in, PLEASE\n",
    "df2.head()\n",
    "nTracts = len(tractPop)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "e9b2c0c0-fb53-44e5-9155-1963d4833ee8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "750596.7418101031 0.1131774380110593 0.0001361943772 0.0400616118781349 0.7450137754374908\n"
     ]
    }
   ],
   "source": [
    "#  HERE'S A BLOCK TO OVERWRITE THE REDONE DATA\n",
    "for r in range(nRedos):\n",
    "    t = redo[r]\n",
    "    HDvPop[t] = redoHDvPop[r]\n",
    "    HDvGOP[t] = redoHDvGOP[r]\n",
    "    tractArea[t] = redoHDarea[r]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "c80e0880-6811-4408-b847-6d70bd2546ff",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt   #SKIP THIS BLOCK IF STARTING FROM FIRST BLOCK\n",
    "from scipy.stats import norm\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "c8f73bb9-e36b-41c7-9220-1ec09169aa3e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# all done with redo's.  Let's look at some outputs.  First, red/blue by home district  SHOULD BE MIX OF RED AND BLUE\n",
    "nPlot = 5\n",
    "for t in range(nTracts):\n",
    "    if(t % nPlot == 0 and tractPop[t] > minTractPop):\n",
    "        redd = min(max( 0, ( HDvGOP[t] - 0.5) * 3.0 ),1)\n",
    "        bluu = min(max( 0, (0.5 - HDvGOP[t]) * 3.0 ),1)\n",
    "        plt.scatter(tractCPx[t],tractCPy[t],marker='.',color=(redd, 0,bluu ) )\n",
    "x,y = wholeMAP.exterior.xy\n",
    "plt.plot(x,y,color='green')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "a5d3b510-6d1e-49ae-9a5d-03352e2b449e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "map of tracts that were used less than 0.7 of expectation in OH\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Now, where are those UNDERPERFORMING tracts (<0.x usage)\n",
    "maxPlot = 0.70\n",
    "print(\"map of tracts that were used less than {0} of expectation in {1}\".format(maxPlot, STATE) )\n",
    "for t in range(nTracts):\n",
    "    if(tractUse[t] < maxPlot and tractUse[t] > 0.05):  #ignore skipped tracts\n",
    "        redd = min(max( 0, ( HDvGOP[t] - 0.5) * 3.0 ),1)\n",
    "        bluu = min(max( 0, (0.5 - HDvGOP[t]) * 3.0 ),1)\n",
    "        plt.scatter(tractCPx[t],tractCPy[t],marker='.',color=(redd, 0,bluu ) )\n",
    "\n",
    "x,y = wholeMAP.exterior.xy   #turn these on if I pull map back in\n",
    "plt.plot(x,y,c=\"green\")\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "876011e8-d37e-44a6-8dd9-a1e4d2f51e58",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "here is a map of tracts that were used more than 1.2 of expectation\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# ... And where are the OVERUSED tracts?\n",
    "minPlot = 1.2\n",
    "print(\"here is a map of tracts that were used more than {0} of expectation\".format(minPlot) )\n",
    "for t in range(nTracts):\n",
    "    if(tractUse[t] >minPlot and tractUse[t] > 0.05):  #ignore skipped tracts\n",
    "        redd = min(max( 0, ( HDvGOP[t] - 0.5) * 3.0 ),1)\n",
    "        bluu = min(max( 0, (0.5 - HDvGOP[t]) * 3.0 ),1)\n",
    "        plt.scatter(tractCPx[t],tractCPy[t],marker='.',color=(redd, 0,bluu ) )\n",
    "\n",
    "x,y = wholeMAP.exterior.xy\n",
    "plt.plot(x,y,c=\"green\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "19bfa7c8-0449-4182-8ed9-f5a1c1276f03",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "here is a map of 1 tracts that were used more than 1.6 of expectation\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# ... And where are the REALLY OVERUSED tracts?\n",
    "minPlot = 1.6\n",
    "counter = 0\n",
    "for t in range(nTracts):\n",
    "    if(tractUse[t] >minPlot and tractUse[t] > 0.05):  #ignore skipped tracts\n",
    "        redd = min(max( 0, ( HDvGOP[t] - 0.5) * 3.0 ),1)\n",
    "        bluu = min(max( 0, (0.5 - HDvGOP[t]) * 3.0 ),1)\n",
    "        plt.scatter(tractCPx[t],tractCPy[t],marker='.',color=(redd, 0,bluu ) )\n",
    "        counter +=1\n",
    "\n",
    "print(\"here is a map of {0} tracts that were used more than {1} of expectation\".format(counter, minPlot) )\n",
    "x,y = wholeMAP.exterior.xy\n",
    "plt.plot(x,y,c=\"green\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "f3e9bde3-06f6-402d-bce1-62b5631e8db0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# CORRELATION OF TRACT UNDER-USAGE IN OTHER TRACT'S HOME DISTRICTS vs. being near a boundary\n",
    "fig, ax = plt.subplots()\n",
    "plt.scatter(tractUse,nearEdge,marker='.' )\n",
    "ax.set(xlabel=\"tract use vs. expectation\", ylabel=\"number of unfilled wedges - max = \"+str(nWedges))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "6bb5c12a-a6a4-4cb1-9026-d227bc11c2ea",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.12586223162469945 = std dev of TRACT usage.  Here is its weighted histogram\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# LET'S VISUALIZE OUR tract usage in a histogram\n",
    "n_bins=50\n",
    "avgTractUse = 0.\n",
    "statePop = np.sum(tractPop)\n",
    "for t in range(nTracts):\n",
    "    avgTractUse += tractUse[t] * tractPop[t]/statePop\n",
    "sumVarTractUse = 0.\n",
    "for t in range(nTracts):\n",
    "    sumVarTractUse += (tractUse[t]-avgTractUse)**2 *tractPop[t]/statePop\n",
    "sdTractUse = sumVarTractUse ** 0.5\n",
    "\n",
    "print(sdTractUse,\"= std dev of TRACT usage.  Here is its weighted histogram\")\n",
    "fig, ax = plt.subplots(tight_layout=True)\n",
    "# We can set the number of bins with the *bins* keyword argument.\n",
    "ax.hist(tractUse, bins=n_bins, weights=tractPop)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "121f9869-3d25-4594-93b3-64a57a95aca8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.11191625404838657 = std dev of PRECINCT usage.  Here is its weighted histogram\n",
      "this is a histogram of PRECINCT usage by precinct\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# LET'S VISUALIZE OUR precinct usage in a histogram  \n",
    "n_bins=50\n",
    "avgPrecinctUse = 0.\n",
    "stateVTDPop = np.sum(vtdPop)\n",
    "for p in range(nPrecincts):\n",
    "    avgPrecinctUse += precinctUse[p] * vtdPop[p]/stateVTDPop\n",
    "sumVarPrecinctUse = 0.\n",
    "for p in range(nPrecincts):\n",
    "    sumVarPrecinctUse += (precinctUse[p]-avgPrecinctUse)**2 *vtdPop[p]/stateVTDPop\n",
    "sdPrecinctUse = sumVarPrecinctUse ** 0.5\n",
    "\n",
    "print(sdPrecinctUse,\"= std dev of PRECINCT usage.  Here is its weighted histogram\")\n",
    "print(\"this is a histogram of PRECINCT usage by precinct\")        \n",
    "fig, ax = plt.subplots(tight_layout=True)\n",
    "# We can set the number of bins with the *bins* keyword argument.\n",
    "ax.hist(precinctUse, bins=n_bins, weights=vtdPop)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "f6f03dcb-c722-4789-b47f-fb7aa3be97bc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "here's a look at numerical stability - number of loops, avg =  6.8697\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "avgTLC = 0.\n",
    "usedTracts = 0.\n",
    "for t in range (nTracts):\n",
    "    if(tractLoopCounter[t] > 0):\n",
    "        avgTLC += tractLoopCounter[t]\n",
    "        usedTracts +=1.\n",
    "avgTLC = round(avgTLC / usedTracts, 4)\n",
    "print(\"here's a look at numerical stability - number of loops, avg = \",avgTLC)\n",
    "n_bins=20     \n",
    "fig, ax = plt.subplots(tight_layout=True)\n",
    "# We can set the number of bins with the *bins* keyword argument.\n",
    "ax.hist(tractLoopCounter, bins=n_bins)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "974631b2-10ef-4847-af2e-a1e26b6fa768",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is a histogram of home-district pct GOP by tract\n",
      "statewide vote is off by 0.00273 0.5435 HD avg vs true 0.54077\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# LET'S VISUALIZE OUR HOME DISTRICT red-blue lean in a histogram  and check the statewide vote vs. HD average\n",
    "n_bins=50\n",
    "print(\"this is a histogram of home-district pct GOP by tract\") \n",
    "print(\"statewide vote is off by\",round((stateGOP2-stateGOP),5),round(stateGOP2,5),\"HD avg vs true\",round(stateGOP,5))\n",
    "fig, ax = plt.subplots(tight_layout=True)\n",
    "# We can set the number of bins with the *bins* keyword argument.\n",
    "ax.hist(HDvGOP, bins=n_bins,weights=HDweight)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "720d9eb5-11e8-45f7-b402-a0048e9ddb99",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "calculated statewide Hispanic pct was 0.03368, should have been 0.03649\n",
      "this is a histogram of home-district VAP pct Hispanic by tract\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# LET'S VISUALIZE OUR home district pct Hispanic in a histogram\n",
    "print(\"calculated statewide Hispanic pct was {0}, should have been {1}\"\n",
    "      .format(round(stateHisp2,5), round(np.sum(tractHisp)/np.sum(tractVAP),5) ) )\n",
    "n_bins=50\n",
    "print(\"this is a histogram of home-district VAP pct Hispanic by tract\")        \n",
    "fig, ax = plt.subplots(tight_layout=True)\n",
    "# We can set the number of bins with the *bins* keyword argument.\n",
    "ax.hist(HDvHisp, bins=[0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.0],\n",
    "        weights=HDweight)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "1ab7704f-a226-45a9-98a6-d0684522c1eb",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is a bar plot of seats by VAP pct Hispanic for CO\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# ALTERNATE VIEW OF HISPANIC VOTE: HOW MANY DISTRICTS PER 10pct BIN of PCT HISPANIC VOTE?\n",
    "n_bins = 20\n",
    "HispSeats = [0.]*n_bins\n",
    "binMid = [0.]*n_bins\n",
    "for b in range(n_bins):\n",
    "    binMid[b]= float(b)/n_bins + 0.5/n_bins  #centering each bin\n",
    "for t in range(nTracts) :\n",
    "    b = int(HDvHisp[t]*n_bins)\n",
    "    HispSeats[b] += HDweight[t]*nDistricts  #multiply by nDistricts to get number of expected seats\n",
    "\n",
    "print(\"this is a bar plot of seats by VAP pct Hispanic for\",STATE)        \n",
    "fig, ax = plt.subplots()\n",
    "plt.bar(binMid,HispSeats,width=0.09 )\n",
    "#plt.scatter(binMid,HispSeats )\n",
    "ax.set(xlabel=\"pct Hispanic\", ylabel=\"number of seats\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "id": "3ef49161-368a-40a2-83ff-92187edb3462",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "using a threshold of 0.35 the number of Hisp districts should be 0.01\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Where in the state do we see Hispanic-heavy home districts?\n",
    "minHisp1 = 0.35\n",
    "minHisp2 = 0.40\n",
    "sumHispDistricts = 0.\n",
    "for t in range(nTracts):\n",
    "    if (HDvHisp[t] > minHisp1 and tractPop[t] > minTractPop):\n",
    "        sumHispDistricts += tractPop[t]/avgDistrictPop\n",
    "        if (HDvHisp[t] < minHisp2):\n",
    "            plt.scatter(tractCPx[t],tractCPy[t],marker='.',color='orange' )\n",
    "        else :            \n",
    "            plt.text(tractCPx[t],tractCPy[t],'o',color='blue', fontsize= 12)\n",
    "print(\"using a threshold of\",minHisp1,\"the number of Hisp districts should be\",round(sumHispDistricts,3))\n",
    "x,y = origMAP.exterior.xy\n",
    "plt.plot(x,y,c=\"green\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "a92133ad-dc95-4aa1-af02-c1d71296cee6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is a bar plot of seats by VAP pct Black for OH\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# ALTERNATE VIEW OF BLACK VOTE: HOW MANY DISTRICTS PER 10pct BIN of PCT BLACK VOTE?\n",
    "n_bins = 10\n",
    "BlackSeats = [0.]*n_bins\n",
    "binMid = [0.]*n_bins\n",
    "for b in range(n_bins):\n",
    "    binMid[b]= float(b)/n_bins + 0.5/n_bins  #centering each bin\n",
    "for t in range(nTracts) :\n",
    "    b = int(HDvBlack[t]*n_bins)\n",
    "    BlackSeats[b] += HDweight[t]*nDistricts  #multiply by nDistricts to get number of expected seats\n",
    "\n",
    "print(\"this is a bar plot of seats by VAP pct Black for\",STATE)        \n",
    "fig, ax = plt.subplots()\n",
    "plt.bar(binMid,BlackSeats,width=0.09 )\n",
    "ax.set(xlabel=\"pct Black\", ylabel=\"number of seats\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "b1e9c437-ddf7-4202-aff0-19f338a5d013",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Black candidates would expect to win 2.53 OH seats out of 15\n",
      "Using simple Alabama-style of Blacks voting 0.9 Dem and whites voting 0.8 GOP\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Where in the state do we see opportunity home districts?  #NEW FORMULATION based on ALABAMA\n",
    "isOppor = [0]*nTracts #will track whether this is an opportunity district\n",
    "blackFracSeats = 0.\n",
    "blackPctDem = 0.9  #fraction of Black voters who are Democrats (est'd from Chen / Stephanopoulos)\n",
    "whitePctGOP = 0.8   #fraction of White voters who are Republican  (\"  \")\n",
    "#minBlack1 = 0.30\n",
    "#minBlack2 = 0.50\n",
    "for t in range(nTracts):\n",
    "    pctWhiteDem = (1-whitePctGOP)*(1-HDvBlack[t])  #this is the fraction of voters who are white Democrats\n",
    "    pctBlackDem = blackPctDem * HDvBlack[t]  #fraction of voters who are black Democrats\n",
    "    if tractPop[t] > minTractPop and HDvGOP[t] < 0.5 :  #Dems would win this Home District\n",
    "        if pctBlackDem > pctWhiteDem : #Blacks would win the primary\n",
    "            isOppor[t] = 1\n",
    "            plt.scatter(tractCPx[t],tractCPy[t],marker='.',color='blue' )\n",
    "            blackFracSeats += HDweight[t]\n",
    "        else :  #the White Dem candidate would win the election          \n",
    "            plt.scatter(tractCPx[t],tractCPy[t],marker='.',color='gray' )\n",
    "\n",
    "print(\"Black candidates would expect to win\",round(blackFracSeats*nDistricts,3),STATE,\"seats out of\",nDistricts)\n",
    "print(\"Using simple Alabama-style of Blacks voting\",blackPctDem,\"Dem and whites voting\",whitePctGOP,\"GOP\")\n",
    "x,y = wholeMAP.exterior.xy\n",
    "plt.plot(x,y,c=\"green\")\n",
    "plt.show()\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "id": "c5125128-e4bb-4337-bc5e-3f48d7cf404f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Here's the state map with Hisp+Black greater than  0.4  or even 0.5\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Where in the state do we see Black+Hispanic heavy home districts?\n",
    "minMinor = 0.40 \n",
    "minMinor2 = 0.50\n",
    "print(\"Here's the state map with Hisp+Black greater than \",minMinor,\"or even\",minMinor2)\n",
    "for t in range(nTracts):\n",
    "    if ((HDvBlack[t] + HDvHisp[t]) > minMinor and tractPop[t] > minTractPop):\n",
    "        if (HDvBlack[t] + HDvHisp[t]) > minMinor2 :\n",
    "            plt.scatter(tractCPx[t],tractCPy[t],marker='.',color='blue' )\n",
    "        else :            \n",
    "            plt.scatter(tractCPx[t],tractCPy[t],marker='.',color='gray' )\n",
    "\n",
    "x,y = tractMAP.exterior.xy\n",
    "plt.plot(x,y,c=\"green\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "58119ef8-13ef-4135-9843-6518025dda07",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is a histogram of home-district population by tract; avg =  786629.8666666667\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAQj0lEQVR4nO3df6zd9V3H8efb1nVsCpa1ILaNrUtnLCRiqBWdJkzMKMys+AdJiUrdSKrIFln8VSRxatIEmLqEKCw1EIpOuk4hNJkotXEuJoxyIbBSWMOFFri00rthNvynWvb2j/OpPb0990fvvb3nfW6fj+Sb8z3v74/zvt/209c53+/3nkZmIklSNd/X7wYkSerFgJIklWRASZJKMqAkSSUZUJKkkhb2u4HJLFmyJFeuXNnvNiRJZ8kzzzzzrcxcOrZePqBWrlzJ0NBQv9uQJJ0lEfFar7qn+CRJJRlQkqSSDChJUkkGlCSpJANKklSSASVJKsmAkiSVZEBJkkoyoCRJJRlQkqSSyn/VkTQoVm75yqzs59CdH5uV/UiDzk9QkqSSDChJUkkGlCSpJANKklSSASVJKsmAkiSVZEBJkkoyoCRJJRlQkqSSDChJUkkGlCSpJANKklSSASVJKmnSgIqIFRHxbxHxUkTsj4jfafULI2J3RLzcHhd3bXN7RAxHxIGIuKarfkVE7GvL7omIODs/liRp0E3lE9Rx4Hcz8yeAK4FbI2INsAXYk5mrgT3tOW3ZRuBSYD1wb0QsaPu6D9gMrG7T+ln8WSRJ88ikAZWZRzLz2Tb/DvASsAzYAGxvq20Hrm/zG4AdmXksMw8Cw8C6iLgEOD8zn8zMBB7q2kaSpFOc0TWoiFgJ/BTwFHBxZh6BTogBF7XVlgFvdG020mrL2vzYuiRJp5lyQEXEDwD/CNyWmd+daNUetZyg3uu1NkfEUEQMjY6OTrVFSdI8MqWAiojvpxNOX8zMR1r5rXbajvZ4tNVHgBVdmy8HDrf68h7102Tmtsxcm5lrly5dOtWfRZI0j0zlLr4A7gdeysy/7Fq0C9jU5jcBj3XVN0bEoohYRedmiL3tNOA7EXFl2+dNXdtIknSKhVNY58PArwP7IuK5Vvsj4E5gZ0TcDLwO3ACQmfsjYifwIp07AG/NzHfbdrcADwLnAY+3SZKk00waUJn5H/S+fgRw9TjbbAW29qgPAZedSYOSpHOT3yQhSSrJgJIklWRASZJKMqAkSSUZUJKkkgwoSVJJBpQkqSQDSpJUkgElSSrJgJIklWRASZJKMqAkSSUZUJKkkgwoSVJJBpQkqSQDSpJUkgElSSrJgJIklWRASZJKMqAkSSUZUJKkkgwoSVJJBpQkqSQDSpJUkgElSSrJgJIklWRASZJKMqAkSSUZUJKkkgwoSVJJBpQkqSQDSpJUkgElSSrJgJIklWRASZJKMqAkSSUZUJKkkgwoSVJJBpQkqSQDSpJUkgElSSrJgJIklWRASZJKMqAkSSUZUJKkkgwoSVJJkwZURDwQEUcj4oWu2p9ExJsR8VybrutadntEDEfEgYi4pqt+RUTsa8vuiYiY/R9HkjRfTOUT1IPA+h71z2fm5W36J4CIWANsBC5t29wbEQva+vcBm4HVbeq1T0mSgCkEVGZ+DXh7ivvbAOzIzGOZeRAYBtZFxCXA+Zn5ZGYm8BBw/TR7liSdA2ZyDepTEfGNdgpwcastA97oWmek1Za1+bF1SZJ6mm5A3Qd8ELgcOAL8Rav3uq6UE9R7iojNETEUEUOjo6PTbFGSNMimFVCZ+VZmvpuZ3wP+BljXFo0AK7pWXQ4cbvXlPerj7X9bZq7NzLVLly6dTouSpAE3rYBq15RO+BXgxB1+u4CNEbEoIlbRuRlib2YeAd6JiCvb3Xs3AY/NoG9J0jy3cLIVIuJh4CpgSUSMAJ8FroqIy+mcpjsE/CZAZu6PiJ3Ai8Bx4NbMfLft6hY6dwSeBzzeJkmSepo0oDLzxh7l+ydYfyuwtUd9CLjsjLqTJJ2z/CYJSVJJBpQkqSQDSpJUkgElSSrJgJIklWRASZJKMqAkSSUZUJKkkgwoSVJJBpQkqSQDSpJUkgElSSrJgJIklWRASZJKMqAkSSUZUJKkkgwoSVJJBpQkqSQDSpJUkgElSSrJgJIklWRASZJKMqAkSSUZUJKkkgwoSVJJBpQkqSQDSpJUkgElSSrJgJIklWRASZJKMqAkSSUZUJKkkgwoSVJJBpQkqSQDSpJUkgElSSrJgJIklWRASZJKMqAkSSUZUJKkkgwoSVJJBpQkqSQDSpJUkgElSSrJgJIklWRASZJKmjSgIuKBiDgaES901S6MiN0R8XJ7XNy17PaIGI6IAxFxTVf9iojY15bdExEx+z+OJGm+mMonqAeB9WNqW4A9mbka2NOeExFrgI3ApW2beyNiQdvmPmAzsLpNY/cpSdL/WzjZCpn5tYhYOaa8AbiqzW8Hvgr8YavvyMxjwMGIGAbWRcQh4PzMfBIgIh4Crgcen/FPIM0zK7d8Zcb7OHTnx2ahE6m/pnsN6uLMPALQHi9q9WXAG13rjbTasjY/ti5JUk+zfZNEr+tKOUG9904iNkfEUEQMjY6OzlpzkqTBMd2AeisiLgFoj0dbfQRY0bXecuBwqy/vUe8pM7dl5trMXLt06dJptihJGmTTDahdwKY2vwl4rKu+MSIWRcQqOjdD7G2nAd+JiCvb3Xs3dW0jSdJpJr1JIiIepnNDxJKIGAE+C9wJ7IyIm4HXgRsAMnN/ROwEXgSOA7dm5rttV7fQuSPwPDo3R3iDhCRpXFO5i+/GcRZdPc76W4GtPepDwGVn1J0k6ZzlN0lIkkoyoCRJJRlQkqSSDChJUkkGlCSpJANKklSSASVJKsmAkiSVZEBJkkoyoCRJJRlQkqSSDChJUkkGlCSpJANKklSSASVJKsmAkiSVZEBJkkoyoCRJJRlQkqSSDChJUkkGlCSpJANKklSSASVJKsmAkiSVZEBJkkoyoCRJJRlQkqSSDChJUkkGlCSpJANKklSSASVJKsmAkiSVZEBJkkoyoCRJJRlQkqSSDChJUkkGlCSpJANKklSSASVJKsmAkiSVZEBJkkoyoCRJJRlQkqSSDChJUkkGlCSpJANKklSSASVJKmlGARURhyJiX0Q8FxFDrXZhROyOiJfb4+Ku9W+PiOGIOBAR18y0eUnS/DUbn6A+kpmXZ+ba9nwLsCczVwN72nMiYg2wEbgUWA/cGxELZuH1JUnz0Nk4xbcB2N7mtwPXd9V3ZOaxzDwIDAPrzsLrS5LmgZkGVAJPRMQzEbG51S7OzCMA7fGiVl8GvNG17UirnSYiNkfEUEQMjY6OzrBFSdIgWjjD7T+cmYcj4iJgd0R8c4J1o0cte62YmduAbQBr167tuY4kaX6b0SeozDzcHo8Cj9I5ZfdWRFwC0B6PttVHgBVdmy8HDs/k9SVJ89e0Ayoi3h8RP3hiHvgo8AKwC9jUVtsEPNbmdwEbI2JRRKwCVgN7p/v6kqT5bSan+C4GHo2IE/v5+8z854h4GtgZETcDrwM3AGTm/ojYCbwIHAduzcx3Z9S9JGnemnZAZearwE/2qH8buHqcbbYCW6f7mpKkc4ffJCFJKsmAkiSVZEBJkkoyoCRJJRlQkqSSDChJUkkGlCSpJANKklSSASVJKsmAkiSVZEBJkkoyoCRJJRlQkqSSDChJUkkGlCSpJANKklSSASVJKsmAkiSVZEBJkkoyoCRJJRlQkqSSDChJUkkGlCSpJANKklSSASVJKsmAkiSVZEBJkkoyoCRJJRlQkqSSDChJUkkGlCSpJANKklSSASVJKsmAkiSVZEBJkkoyoCRJJRlQkqSSDChJUkkGlCSpJANKklSSASVJKsmAkiSVZEBJkkoyoCRJJRlQkqSSDChJUklzHlARsT4iDkTEcERsmevXlyQNhjkNqIhYAPw1cC2wBrgxItbMZQ+SpMEw15+g1gHDmflqZv4PsAPYMMc9SJIGwMI5fr1lwBtdz0eAnxm7UkRsBja3p/8dEQfmoLfZsAT4Vr+bOAOD1O8g9Qp97jfuOuNNPL5nzyD1Cv3p90d7Fec6oKJHLU8rZG4Dtp39dmZXRAxl5tp+9zFVg9TvIPUK9nu2DVK/g9Qr1Op3rk/xjQArup4vBw7PcQ+SpAEw1wH1NLA6IlZFxHuAjcCuOe5BkjQA5vQUX2Yej4hPAf8CLAAeyMz9c9nDWTZopyUHqd9B6hXs92wbpH4HqVco1G9knnYJSJKkvvObJCRJJRlQkqSaMvOcn4AfB57rmr4L3AZ8Dvgm8A3gUeCHura5HRgGDgDXdNWvAPa1Zfdw8jTqIuBLrf4UsLJrm03Ay23aNN1+u5b/Hp3b95f0u9+JegU+3frZD9zd714n+btwOfD1VhsC1hXp9zPt+L0APAy8F7gQ2N32sRtYXKHXCfotOc7G67fiOJuoVwqOs6lOZ/Uf/kGc6Ny88Z90fnHso8DCVr8LuKvNrwGeb39gq4BXgAVt2V7gZ+n8ztfjwLWt/tvAF9r8RuBLbf5C4NX2uLjNL55Ov+35Cjo3obx2YuBU6XfMsf0I8K/Aorbsokq99uj3ia7Xuw74ar/7pfOL7weB89rzncBvAHcDW1ptC0X+3k7Qb8lxNl6/FcfZBMe2/DibaPIU3+muBl7JzNcy84nMPN7qX6fze1vQ+XqmHZl5LDMP0nlHsS4iLgHOz8wns/Mn9xBwfdc229v8PwBXR0QA1wC7M/PtzPwvOu9410+n3/b888AfcOovQFfpt7vXW4A7M/MYQGYeLdbr2H4TOL/VL+Dk7+/1u9+FwHkRsRB4X+ure//bx7xuv4/taf0WH2e9ji/UHGe9eh2EcTYuA+p0G+l8PB7rk3TeTUDvr2xa1qaRHvVTtmmD8TvABybY1xn3GxEfB97MzOfHrFOl3+5j+yHgFyLiqYj494j46WK9ju33NuBzEfEG8Od0To/0td/MfLP18jpwBPhOZj4BXJyZR9o6R4CL+t3rJP12KzPOxuu34jib4NgOwjgblwHVpf3y8MeBL4+p3wEcB754otRj85ygPt1tptxvRLwPuAP4416rTuO1Z7XfHsd2IZ3TAVcCvw/sbO/G+t7rOP3eAnwmM1fQOdd//wxee1b6jYjFdN7VrgJ+BHh/RPzaeOv3s1eYvN9q42ycfm+i4Dib4NiWHmeTMaBOdS3wbGa+daIQEZuAXwZ+tX3khfG/smmEk6cnuuunbNM+gl8AvD3Bvs603w/S+cv5fEQcavt5NiJ+uEi/Y4/tCPBIduwFvkfnSyor9Nqr303AI23+y3S+mf+U1+5Dv78EHMzM0cz839bfzwFvtVM1tMcTp3X6fWzH67fqOOvV7yeoOc7GO7bVx9nEpnKh6lyZ6Pz3H5/oer4eeBFYOma9Szn1AuOrnLzA+DSddysnLjBe1+q3cuoFxp158gLjQTrvcha3+Qun0++YZYc4efG27/32OLa/BfxZm/8QnVMEUaHXcfp9CbiqzV8NPNPvY0vnfwLYT+d6Q9C5PvBpOnfFdd8kcXe/e52k35LjbLx+K46zCY5t6XE26TicjZ3Mh6n9wX4buKCrNtz+QJ9r0xe6lt1B586XA7S7XFp9LZ3bPF8B/oqTt2i+l84772E6d8n8WNc2n2z1YcYJnKn0O97A6Xe/4xzb9wB/1177WeAXK/Q6Qb8/DzzTBvVTwBUV+gX+lM4t2i8Af0vnH5wPAHvo3PK7h65/LAoc2179Vh5np/VbeJz1OrZlx9lUJr/qSJJUktegJEklGVCSpJIMKElSSQaUJKkkA0qSVJIBJUkqyYCSJJX0f4fML4wKqPkHAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# LET'S VISUALIZE OUR HOME DISTRICT population in a histogram\n",
    "n_bins=50\n",
    "print(\"this is a histogram of home-district population by tract; avg = \",np.sum(tractPop)/nDistricts)        \n",
    "fig, ax = plt.subplots(tight_layout=True)\n",
    "# We can set the number of bins with the *bins* keyword argument.\n",
    "a = avgDistrictPop\n",
    "ax.hist(HDvPop, bins=[0.9*a,0.92*a,0.95*a,0.99*a,1.0*a,1.01*a,1.05*a,1.1*a])   #n_bins\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "id": "1f9101bd-108a-48cb-bee5-3f4e04c18132",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is a histogram of home-district area by tract\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# more HOME DISTRICT STATS in a histogram\n",
    "n_bins=50\n",
    "print(\"this is a histogram of home-district area by tract\")        \n",
    "fig, ax = plt.subplots(tight_layout=True)\n",
    "# We can set the number of bins with the *bins* keyword argument.\n",
    "ax.hist(HDarea, bins=n_bins)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "d8167a80-2b91-4adc-ab34-9e010838213d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# What is the correlation of HD area to red-blue lean?\n",
    "fig, ax = plt.subplots()\n",
    "plt.scatter(HDarea,HDvGOP,marker='.' )\n",
    "ax.set(xlabel=\"tract area\", ylabel=\"home district pct GOP\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "cf95cc7c-e58a-4174-94f6-b6d4c7ccb0ff",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# What is the correlation of tract usage to red-blue lean?\n",
    "fig, ax = plt.subplots()\n",
    "plt.scatter(HDvGOP,tractUse, marker='.' )\n",
    "ax.set(xlabel=\"home district pct GOP\", ylabel=\"tractUse\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "id": "617384b8-1e0b-45a7-ae09-babe8dd9d429",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# What is the correlation of tract usage to tract population?\n",
    "fig, ax = plt.subplots()\n",
    "plt.scatter(tractPop,tractUse, marker='.' )\n",
    "ax.set(xlabel=\"Census tract population\", ylabel=\"tractUse\")\n",
    "ax.set_xlim(left=0,right=10000)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "91f163ab-6b94-47ee-bd29-be3e751fe2b4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEGCAYAAABy53LJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAABB2klEQVR4nO29e5QV5Zno/Xv2btpIgtABL0DTIIokgkkO3QJOLmqijviRECWOit9kdCYSv9GZOFlzTjLmhOMyJzmeycx3zMxwwiDLleW3BKOikXh0vGSIGmMjNBPDJQHb1m5aEIE0hgRCd+/9fH9U1e7a1bVr1969L717P7+1WPSuet+qt/ryPvXcRVUxDMMwjLgkqr0AwzAMo7YwwWEYhmEUhAkOwzAMoyBMcBiGYRgFYYLDMAzDKIiGai+gEkyZMkVnzZpV7WUYhmHUFB0dHYdV9fTg8boQHLNmzWLbtm3VXoZhGEZNISLdYcfNVGUYhmEUhAkOwzAMoyBMcBiGYRgFYYLDMAzDKAgTHIZhGEZBmOAwDMMwCsIEh2HUIR3dfaze3ElHd1+1l2LUIHWRx2EYxhAd3X3cuK6d/sE0jQ0JHvzSYlpnNlV7WUYNYRqHYdQZ7V1H6B9Mk1YYGEzT3nWk2ksyagwTHIZRZyyePZmGZAIBkskEi2dPrvaSjBrDBIdh1CNe50/rAGoUQVkFh4hcKSJ7RKRTRL4ecl5E5J/c878UkQVx5orIX7nndonI35fzGQxjrNHedYTBtKJAKq1mqjIKpmzOcRFJAquBy4FeYKuIbFLV3b5hS4A57r9FwPeBRVFzReRSYBnwEVU9KSJnlOsZDGMssnj2ZBobEgwMphnXYKYqo3DKGVW1EOhU1S4AEXkIZ8P3C45lwAOqqkC7iEwSkanArIi5/w9wj6qeBFDVd8v4DIYx5mid2cSDX1pMe9cRFs+ebBFVRsGUU3BMB/b5PvfiaBX5xkzPM/c84JMi8m3gD8DfqurWEq7bMMY8rTObTGAYRVNOwSEhx4KeuFxjouY2AE3AYuBC4GERme1qLUMXFlkJrARoaWkpYNmGYRhGFOV0jvcCM3yfm4H9McdEze0FHlOHV4E0MCV4c1Vdq6ptqtp2+unDGlgZhmEYRVJOwbEVmCMiZ4tII3A9sCkwZhPwRTe6ajHwnqoeyDP3R8CnAUTkPKAROFzG5zAMwzB8lM1UpaqDInI78AyQBO5X1V0icqt7fg3wFHAV0AkcB26Omute+n7gfhHZCfQDfxY0UxmGYRjlQ+phz21ra1PrOW4YhlEYItKhqm3B45Y5bhiGYRSECQ7DMAyjIExwGIZhGAVhgsMwDMMoCBMchmEYRkGY4DAMwzAKwgSHYRiGURAmOAzDMIyCMMFhGIZhFIQJDsMwDKMgTHAYhmEYBWGCwzAMwygIExyGYRhGQZjgMIwap6O7j9WbO+no7qv2Uow6oZytYw3DKDMd3X3cuK6d/sE0jQ0JHvzSYuslbpQd0zgMo4Zp7zpC/2CatMLAYJr2riPVXpJRB5jgMIxRRKFmp8WzJ9PYkCApMK4hweLZk8t2L8PwMFOVYYwSijE7tc5s4sEvLaa96wiLZ0+ObaYyE5cxEkzjMIxRgt/s1D+Q5t7n98bSBlpnNnHbpeeGbvxhWkVHdx/3Pr/XTFxG0ZjGYRijBM/s1D+QJg283HmYrW/9pmhtIEyrALhxXTsnB9IokCjCxGUYpnEYxijBMzt9fM4UEsKItYEwx7l3THH++D9+7hQzUxkFY4LDMEYRrTObuOOy84p2ePsJc5z7jzWOS3DHZeeZ0DAKRlS12msoO21tbbpt27ZqL8MwYtPR3VewwzvudUp1bWPsIyIdqto27Hg5BYeIXAl8D0gC61T1nsB5cc9fBRwHblLV7VFzReQu4BbgkHuZO1X1qah1mOAw6oVChYIJESOKXIKjbM5xEUkCq4HLgV5gq4hsUtXdvmFLgDnuv0XA94FFMeb+L1X9h3Kt3TBqkUJDbKPGm0Axoiinj2Mh0KmqXaraDzwELAuMWQY8oA7twCQRmRpzrmEYPgrNIs813hMo//jsHm5c124JgsYwyik4pgP7fJ973WNxxuSbe7uI/FJE7hcRex0yappSZXAXmkWea7yVMTHyUc48Dgk5FnSo5BoTNff7wLfcz98C/hH482E3F1kJrARoaWmJt2LDqDClzOAuNIs813hPoAwMpi3HwwilnIKjF5jh+9wM7I85pjHXXFU96B0UkfuAJ8NurqprgbXgOMeLegLDKDNhb/e5Nvw4fofWmU0FCZ6w8cWWMTHqh3IKjq3AHBE5G3gbuB5YERizCcfs9BCOc/w9VT0gIodyzRWRqap6wJ1/NbCzjM9gGGUl7tt9R3cfN6x9hYGUMi4pbFh5UVk39EIFkFFflE1wqOqgiNwOPIMTUnu/qu4SkVvd82uAp3BCcTtxwnFvjprrXvrvReRjOKaqt4Avl+sZDKPcxH2737i9l/6Uozj3p5SN23ttYzeqRllrVbn5FU8Fjq3xfa3AbXHnusf/tMTLNIyqEuftPuj0C3MCGkalsJIjhjFKiIquumZBM40NCQRobEhwzYLmyi+wRFgfkNrHquMaxiggTnTVF1qbOXzsJKdPOIU97xyrmvN6JMmB1gdkbGCCwzAqTNjGGxVd5W22Xil0gUxJ9EpvviPd+AuJIjNGL2aqMowKkisrOyp5z18KHYYSmqqRoDfS5MCRtLo1Rg+mcRhGBcn1xh0VXRVs8OTXOCq9+Y40OdByRMYGVlbdMCqIp3F4G29cU49n3moa30jf8f7M/7Xm4zBqi6qUVR8tmOAwRhO1tvHW2nqN0lHxsuqGYYQTJ2/Dv1kDZd24owSDRUEZYZjgMIxRhn+zbkgIaSBVplIj+QSDRUEZYVhUlWGMMvybdX9KGUwpylCpkbLdayDNvc/vzUrM80dBJRPC/qMnLHHPMMFhGKMNb7NOUP5SI/57pYGXOw9nhQl7UVDXLWwBETa82mPNnQwTHIYx2mid2cSqpfNIJIbERLlKjXiC4eNzppAQQjWP1plNTJ90KoMpa+5kOJjgMIxRSN/xftLqmKgSwCfmTGHDLeVxTLfObOKOy86L1Dwscc/wY85xw6giwYimju4+Nm7v5fCxkzQkE6RSTr7HHZedVzantLeGVUvn8fTOA7zcebigBEWj/jDBYRhVIhjRtGrpPO7atDPTd6MhKVy/sIVrFjRHbtTF5ll4QurRjl4GU0Nr2PrWb0Izw/1hxJbbUd+Y4DCMKhEMdX165wEGUkMJuamUMm3SqXmFRjF5FsHCiQAnB9Ls3P9eqGYRzCux3I76xgSHYVQJfw0qEWHe1NPY0nUko3HE8SUUm2cRLJwITv2rRzt6Wb6gmdsuPTdzPCicPjXn9IzAsdyO+sSc44ZRJfzRU2lVfvDKW9z1ufmsWNTCjYtaYjnDi3VaL549mYbE8ODeVGp4xFQw1+MnvzqYETjJpDnK6xHTOAyjinjRU57G0He8n+9cfUHs+X6nddP4xsymn0/gtM5s4tq2Gazf0pMRAkK48PFXxBVxhJw3/gut0f4XY2xigsMwqshIy5T7q+be/eSugvwO1yxoZuP2XgYG0yQTwrVtM0Id8UHhdNemnQy4JVCW13ALW6N4THAYRhUZSZir3/eQcDWBQnwdhdzbi6jq6O4DcTuCSKnz2I1awQSHYVSZONVyw/D7HlAlkRAELUhz8d97/ZYent55gCXzp7JiUUvOew6mHMe45w8xU1X9YYLDMEYhcfIkgmauVUvnxW7uFLz++i093Pn4DgBeev0wQKjwGKlpzRgblFVwiMiVwPeAJLBOVe8JnBf3/FXAceAmVd0ec+7fAt8FTlfVw+V8DsOoJLlyM4KbfbFmrrDrP73zQNaYH27tCRVCue5pCYH1RdkEh4gkgdXA5UAvsFVENqnqbt+wJcAc998i4PvAonxzRWSGe66nXOs3jGoRlpsB4Ul3xZi5wq6/ZP7UjKYBsPvAb9nx9nuhjvbgPddv6WHVEztJq1pCYJ1QzjyOhUCnqnapaj/wELAsMGYZ8IA6tAOTRGRqjLn/C/gvkJW/ZBhjgrDcjFzCpFTXX7Gohe9cfQGfnDOFK84/k1RaY92ro7uPVU/sZNAd32+Vc+uCcpqqpgP7fJ97cbSKfGOmR80Vkc8Bb6vqaxIR1SEiK4GVAC0t4Y4+wxiNhOVmNI1vLJlvIZe5acWiFuaeNYGN23uzCixG3au96wip9ND7W0LE/B51QDkFR9iuHtQQco0JPS4i44FvAFfku7mqrgXWArS1tZlmYtQU3mYeLIIY1/kdJMw/EtVfvCERr8Di4tmTOWWcUzYlkRDuXjbfzFR1QDkFRy8ww/e5Gdgfc0xjjuPnAGcDnrbRDGwXkYWq+k5JV28YVSZonvKERtzscI+gQMiV6Oe/Xyqdv8CitwYrt15/lFNwbAXmiMjZwNvA9cCKwJhNwO0i8hCOKeo9VT0gIofC5qrqLuAMb7KIvAW0WVSVUeuERSUFQ1+bxjdmKtom3bf7XPkWfoI9zNdv6WHj9t5hTuxiQ22t3Hr9kVdwiMjZqvpmvmNBVHVQRG4HnsEJqb1fVXeJyK3u+TXAUzihuJ044bg3R80t+OkMowbIFX4bfJtv7zqSqUo7mFZWPbGTuWdNiF0I0Zubq6rtSLWHuJqNUfvE0Tg2AgsCxx4FWvNNVNWncISD/9ga39cK3BZ3bsiYWfnWYBijnajS6EFfRDIhDLrO6LRqaOZ2rnwPr2lTlNO72Cz24HNEaTZG7ZNTcIjIh4B5wEQRucZ36jTgfeVemGHUC3FNRK0zm7h72fysnIng2CjtpXVmE8sXNOfUKAo1MwXHx9VsjNonSuOYCywFJgGf9R0/BtxSxjUZRl1RiInIC5n1QnQ3bu/lse29GZNQ1lt/DnNU2PXjZqvnGx9XszFqm5yCQ1WfAJ4QkYtU9ZUKrskw6gb/xuzvupdvvFfe3OsW+EhHLxtuWUzT+Ea8tIq0QtP4xljrCJrLNm7vZc0Lb/Dvv34XDckIz2VeC9NsAFZv7qRpfGPR4cTG6CKOj6NTRO4EZvnHq+qfl2tRhlEPFNovPFhG3Z9458/wdouek8BpFBUHv7ksmRAe3raPQV//86D2ks+85i/D7u9tnhCsLMkYII7geAJ4CXgeSJV3OYZRPxTaL3xYGXUBb2/3b96njCsupNYzl+0/eoL1W7LLwAUzwuOa14K9zQvtjW6MTuIIjvGq+rWyr8Qw6oxC8ybCyqjv3P8eAllhr8WG1Pq1hEe27cuYwZI5MsLjRGA1jW8kIYKqZkpCiEhsE5oxOhHV6GocIvLfgZ+74bE1SVtbm27btq3ayzCMYYw0kqmc69q4vXeYUCr0Gv6ExaUfmcqTvzxgVXRrCBHpUNW24PGocNxjDNWNulNETgID7mdV1dPKtVjDqBcKzZsoNs+iUIEzknwOD7+ZSlU58vv+gtvbGqOTqKiqCZVciGHUMyPVJKLmV6tfRtC0tmT+VLa+9RvrHjgGiFNyJJg1DvAe0K2qg6VfkmHUF4VGV+Wb76+iC2T6ZUB4bke5CHOg+3NQCi3WaIwe4jjH/zdOyZEd7ucLgNeAySJyq6o+W67FGUY9EJZDUYj2kZX0N5DO0i6WL2iuar+MoMkrrFy8+TpqjziC4y3gL7wigyJyPvCfgW8BjwEmOAwjD1GmpGAOxaMdvQym8m+q/mTAhoTQn3Iil1JpzZT7UKhov4w4JrdCw5CN0UccwfEhf2VaVd0tIv9JVbuiOvAZhuGQzxQVzKHY8GpP3k01WIk25UZHerpFwm0Lu3xBc2R9qko+p8fi2ZNpSAgDKSWZsI6BtUgcwbFHRL6P0/cb4Dpgr4icghNlZRhGBHHesP05FBu39+Z1IGdd09U0/Hz83Cnccdl5WVV2y41/TScHHJNbzvuKm99uL581SSLGmJtw+mXcAfwN0OUeGwAuLdO6DGPM4JmikuIk0+0/eoKO7r7QsZ728dUr5kaaqfzXHJcUGpJDG3BjQyJLaFQKT5MAR/N5tKM385wd3X2s3tyZMWUNphwzWio1VCrFqB3yJgCOBSwB0CgHhYTQeppEXP9FofcHRpywF3bdQq/zjcd3sH5LDwokBb56xVwWz548LOrr7id3ZbQqc46PXopJAHxYVf9ERHbAME0YVf1IiddoGDVDoSG0XsnzwVTpnMK5IpZGwkhDg69Z0DzM1BbWO936lNc2UT6Or7j/L63EQgyjligkMsgf/VRMT+9KMtKIp1zFD4PPXYrMdKN6RGWOH3D/7xaRmcAcVX1eRE6NmmcY9UDcAoVRyXmV2jgLMT0VWngxjDBNyDSMsUWczPFbgJXAB4FzgGZgDfCZ8i7NMEYXwQ24kLLifjNNnIZNpVxzoSa1Yjf5KAFlGsbYIo7mcBuwENgCoKqvi8gZZV2VYYwyonp5R1GKN/iRUIzpqZhNPq6ACjr0PROedQasLeIIjpOq2u8l+4lIAyHOcsMYyxRr+6+2maZSgivO9yeYtIhIJrvdOgPWFnEExwtu69hTReRy4C+BH5d3WYYxuhjJBpzrDb4UPS/i3NsvuMDp/11qIRbn+xNMWgS1zoA1SpxGTgngL4ArcHpxPAOs0xgJICJyJfA9IOnOuSdwXtzzVwHHgZtUdXvUXBH5FrAMSAPvunP2R63D8jiMUlDKJkod3X3csPaVTJe9xoYEG24p79t2uR31+b4/mfsPpBGBREJIpZQ0pnGMVgrO4/BxCfCgqt5X4A2TwGrgcqAX2Coim1R1t2/YEmCO+28R8H1gUZ6531XVb7r3+GtgFXBrIWszjGIopYO3veuI+9btUOzbdiHCLKqKbik27Hzfn9aZTaxaOi9zXwFuWNTCvGkTzcdRY8QRHDcBa0TkCPCS++9nqhpeM2GIhUCnqnYBiMhDOJqCX3AsAx5wtZd2EZkkIlOBWbnmqupvffPfj/lbjCpTjCayePZkxiUlo3EU438Ic0gDWWvxr81vThKRorrxjVTr6js+1AUwlVamTTqVFYtaCr6OUV3yCg5V/SKAiEwDvoCjCUyLMXc6sM/3uRdHq8g3Znq+uSLybeCLOA2lQutlichKnDBiWlrsF9MoD8VmWrfObGLDyotG5OMI6+Px2PbeYaU9/Gvz/B1N4xuzyn7EEVojzSoHaBrfSMItcDhakyCN/MTJ4/i/gU/iNHA6DPwLjtaRd2rIsaB2kGtM5FxV/QbwDRH5O+B24L8NG6y6FlgLjo8jxnqNKlBKv0ElCK53JJnWIzV9BR3SAllreXrngWFru+3SczP39Lrx+b/3UT+PfM8ax8dx95O7SKWdcuqrls6riZ+5MZw4pqp7gTdwkv42q+pbMa/dC8zwfW4Ggk7sXGMaY8wFWA/8H0IEhzH6KcUbbCUJW2818zTCIqb8daLy9fj2C644RRijnjXOz9ITPAqoKn3H+8v0nTHKTRxT1RQRmQd8Cvi2iMwB9qjqn+aZuhWYIyJnA28D1wMrAmM2Abe7PoxFwHuqekBEDuWaKyJzVPV1d/7ngF/HeVBj9FFrneDC+k185+oLqpqn4d3Pu3+uHt9Ra/M2/ZMD6YxaH/bziMpJifOzDAqepvGNZQkNNspPHFPVaUALMBPHaT0RJxQ2ElUdFJHbccJ3k8D9qrpLRG51z68BnsIJxe3ECce9OWque+l7RGSuu4ZuLKKqZql2VnWheP0mvBatj3b0stz1TVRr4wt70/eXNImzNr8mAI6d2P/zCJqgcnX1C/4sw+YFfSy1om0a2cQxVf3M9+9fVLU37sVV9Skc4eA/tsb3teKUNIk11z2+PO79jdFNtbOqC6V1ZhPXts3I9JvwmhBFrXskPpyR9O+Omhs8F+x5fm3bjIyz3hNMfxhIkxBY+cnZfP2qD4d+b4Jms1wlWlpnNrF6c2dNaZtGNnFMVdZ3wygbtVb8LqzfRC4K9eEE6zjF7d8d9qafa26uc1EmqD8MOAaGtMKaF7tomfz+YSG0/ix4b54/Z+Te5/dmdSX01u0kAwpN4xvzf/ONUYOVRzeMAsinJfk3/0J7dvg39OULmnPODZYqCa4n6m0+15qCjnJ/7kdCHKHh8fTOA1m+EyArC/6Rjl7u+uy8jGBIAy93HmbrW7/J0jxuumgWa1/qIpVW7n5yF3PPmlBTLxH1jAkOwyiQqNpTwZIecX04wQ1dGd78yLtHcJPecEu2XyPKd5TPrxSmkaz85GzWvNiVGTNv6mnDhFwwC97r8nfv83t5ufNwqClt3c/ezAgkL9jABEdtYILDqDvKlTtSSItUf1fAvuP9w7oDLl/QzPIFzcPmxilV4mlFftNR8FwhuRpfv+rDtEx+P0/vPMCS+VPpO94/TMiFZcG3zmzijsvOy4QEJxPC/qMnMs+e8qkxwWADY3QTJ6rqdOAWnIiqzHhV/fPyLcswykM5c0fC3ubDtJNg+KtX4C+s6GBYSGvcUiVeFvnG7b1ZzxnlV8qlkaxY1JLxa3R092X5J+ZPm8jylc2hWfB+IfZoRy8bXu1h4/ZeVi2dl/UcAIMxgg2M0UEixpgncEJwn8dJtvP+GUbNEfZGXSq8TfKrV8yNFEjB8Ndgd8BcZrDVmzsB2LDyIi4//0w+2jyRuz4bnn1d7HMGnwGcMuwd3X1ZY1YtnUci4dS7uvtJJ1L+O1dfwLevvmDYnNaZTUyfdCqDqWxt7Nq2GVn3ToiM+pBswyGOqWq8qn6t7CsxjApQjtyRqDyHMLOYP6LIKynuN+NAdqHC9Vt6sirZrlo6j5deP0T/YJo9B8OdyqXoHxJVht1frDDouwjT6HKtZ+P2XvoH0iQSwt3L5pu2USPEERxPishVbl6FYYw6CvFZlDp3pJjQ12Ai3M7972XMOI9s2wcimbIfXhnyQdcf0J+jBlXwOUrxnI9t782Y07wy7F6dqS994uxQQRAVtRW2nlrK4zGGiCM4vgLcKSIngQGcxFJV1dPKujLDiEExPotcfodiNrBcJqH2riPsP3oi5wbvX8PqzZ1DZhxfZzyvUKHfiZwQYd7U03jljSPkqzA7khyZju4+Htm2byibPCGk0s66BtPKfS918ZkPn8npE07hmgXNmecIOvn9a/M7+P3rM4FRe8RJAJxQiYUYRjGUot5VLuETR5iE1V/y99VuSCZIpaLNRcHMbUQyc7xChSfdrnlLPzKVH7zyVqwKs8GEwuDX/oiuoFO+vetIRssR4NMfOoPNv343cyyl8Nzug5wyLsG8aROzyod4Jq2m8Y1ZQqLWiloauckpOETkQ6r6axFZEHbea/FqGNWkFD6LXFrDDfe1Z66bq61r0ATjv1YqrVy3cAbTJ50aKXzCynUEBZbn43jylwdIq+atMOvfpBtcYTSYGvraC6N1OmMMb90a/L7eevE5nDPl/ax9qSuTe+HXioJhyItnTx4mJGqtqKWRmyiN46s4jZD+MeScAp8uy4oMowBKYcsPEz5eKCs4foXHAslpUQ5xv/Yg7vULNZ/5v/Y7olElkRAkj5kqa5P2m798XwPDIrty+SQAfvDKW6hCUpx+4em05izfHiYkaq2opZGbnIJDVVe6/19aueUYRuGM1E4eJnw2bs+u5alkJ+3lquyaK29hJGaZ4IYblu8RNcdv/vK+Hhx0Irr8GkeYT8Lvh/GHEF/b5mhSTeMb2bznXZonncrs0z/Aly8+JzOnIenePzmU02LO8LFBnATA9wF/CXwC53fsJWCNqv6hzGszjIoRrNUE0JAUUillXNJJcvNML4k8/bpbZzqdAf15C8WaZTxhFUdYBJ8nl/nL+zrKxxEkKLyWuw7x6/7157iKGZ2Hfs8lc88YuoZq9v/UXlFLI5w4UVUPAMeAf3Y/3wD8f8C15VqUYVSLoG/gukUtXOOW/vBML2HmoqhS5cWaZUbqTI4yfxW6eYdpC6s3d2aEhsfTOw+wYlFLxrnumcfWvPAGH5sxyTSNMUIcwTFXVT/q+7xZRF4r14IMo5oEndvTJp2a2ehymYv2vHMsK0EvX6nyYtZSiNZSrlpcQUHkNLYiS3gsmT/Vd26o6dVzuw/yk18dtGiqMUIcwfEfIrJYVdsBRGQR8HJ5l2UY1SGqvWmYIFi/pYf/+qMdmUij/hylyv3E3dibxjeSEMcL4c8sj5pTyZDX1plN/PDLf8SaF97g3d/+gesubMnq09Ey+f10vvu7zGeLpho7RIXj7sDxaYwDvigiPe7nmcDuyizPMCpLMKs76AT3ly/v6O5zNY2h+V4UVS7ibuwd3X3c/eQuUmklIc4fXhxHe6VDXltnNnHfF9uGrd3rGuhHyF2UsVxaklEeojSOpRVbhWGMIjxNIV9702BpcHDCVKOIu7H7CyGmFdKpoWzyKGFQ7pDXQtrZ+mlIwKc/5GSah13TEgNri6hw3O5KLsQwKkncrPCGhDCQckxFwU04WOIcIJ3WWBt7vpap2eOy8yaihEE5Q17jbvBhPcz92eVBrckSA2uPOGXVDWNM0dHdxw33tfMPz+zhhvvas0qGD0Mk+/9c5wnPhQjSOnN4SfKw+/vHeRne1y9siV2LK1959shnzjE2bql2T3h99Yq5bFh5Ed+++oJhzZ/8cz1Bk4zx/TNGB9YB0Kg78mWFe3i5GAqkQpoMeefBeQP7+LlTuOOy8/Ju7LlKkkeNC0Z4wXCtKUyLCtarimsSCtMuCjGDeeY+T/jkK35oiYG1hQkOo+7QPJ/9GeJRG2VwI40jNMLm+a/r3+jzjQv2yggWGvTKtXsl2pcvaI5tEgrTLm679NyCNviofh4mHGqbsgoOEbkS+B6QBNap6j2B8+Kevwo4DtzkFU/MNVdEvgt8FugH3gBuVtWj5XwOY2yxfEEzj27bx4CbFe5lQXd092VKhfj7Yfg3u+BbfTFvyv6yJH4DWNhbfq7rBzd2f6FBf+8MTyh6RQ3jagxRYcn+yLIownqwh80153jtUTbBISJJYDVwOdALbBWRTarqD+VdAsxx/y0Cvg8syjP3OeDvVHVQRP4n8HeAdSg0YtM6s4kNKy8aZubx9wGH4ZtdMKv82rYZXLOgOfZGGiTYEzzXW34+B3Sw0KC4JVEyvTQgUyZkuZsFn0/Q5QtLHqlm5cec47VHOTWOhUCnqnYBiMhDwDKyc0CWAQ+oqgLtIjJJRKYCs3LNVdVnffPbgS+U8RmMMYZfY/Bv+ME+4MGcg47uPu59fu/QW31KeXCL07Fvw8qLCt7oRlo9NkzbmXvWhKyN3h/V5DVbKkQ7ihOWHBWdFlcjs6q5tUc5Bcd0YJ/vcy+OVpFvzPSYcwH+HPhh2M1FZCVOWXhaWlrChhg1TDEJY1EmkbAQ0msWNOfURjz6U8rGEOd6vvWFbZaFmr7CalF5nz0hEtSocmkNUevNtbHHMTHFKWoYVpDRM4uZ5jE6KafgCItfDP7d5RqTd66IfAMYBB4Mu7mqrgXWArS1tQXva9QwxdrEo0wiUZu2XxtJAGecdgrv/PZk5nzwlzXuhrpq6Tye3nmAJfOnZq2jFJtl8Dr+Zz85kM4SdvnWm+t7U4paWt51PA3Q/B21QTkFRy8ww/e5Gdgfc0xj1FwR+TOczPbPuGYuo44odMPyNqpjJwYytZ9yVbWNox389WfO464f78p89sxAhazPKynSP5hm61u/Ye5ZE0qyQebSHIJFBx/t6GW5q1HlW2/UNQs1MeXqTGhdAmuLcgqOrcAcETkbeBu4HlgRGLMJuN31YSwC3lPVAyJyKNdcN9rqa8DFqnq8jOs3RimFbFhBM5NAplc35M5ryBc9FTQFFbq+cmyQUW/rrTObuLZtBuu39GTlpQC8ffREzt7o+a5ZaFRZzs6ERfh5jOpRNsHhRj3dDjyDE1J7v6ruEpFb3fNrgKdwQnE7ccJxb46a6176X4BTgOecaF7aVfXWcj2HMfooZMMKOr39vbpzbd5hm2XYGnLdN876yrFB5hNG1yxoZuP23qwQW//b//ULWzJ+nbjX9Jut/J9zkaszYbF+HqM6lDWPQ1WfwhEO/mNrfF8rcFvcue7x4mIfjTFFXF+Av+ZTmuFlQcI27+BmuXF7byZ0NpfdPZfdfiTCJS5xExaD94zqPRL8/uW6ZqE+iTBHePB7UCo/j1E+LHPcqEnWb+nJOJb9PSCCBPMRgpnLYZv34tmTs/plC2RKhJ8cCPcBDLWVBUXQQFOnXGsrtXnKn7AIw6OTgvcMCoUwn0+UgAsTsnGEZpjWYtQOJjiMmmP9lh7ufHwHAC+9fhggr/AoePP29cv+/cnBocPAsRMDWUP9m6dTZd2Z2x9i2sn3XHGEYa57+xMWc5nbooQChPt8or5/QdOTP+s+Xy0sM0fVLiY4jJrAv9E8vfNA1jmvz3WpaO/K7pcdrAK768Bvsz57m2cwzyMhEvoWH6Sju481L7zBc7sPAvGEYfDexZrb/EIhX/+RMPzCZ//RE2x4tSfvfAu5rX1McBijnuBGc9NFszKbKwz1uS4VwdDVQ787mXU+eD9v88zUuRpMk0gIdy+bD5CJ6kq6x/wCIVe3vLjC0H9vfz5JUKAI5BUKxTrsPeHj1foqpMRIMKfEqA1McBijnuDb84RTx/Gdqy8o2KwT1zwSDF1F4fLzz+QPA6mc9/M2z2AtqNWbOzOayGBaWfXEzqycjbBueVC4MAzWvQozQ+Xb1EfqsA/6k3JFWkXllBi1gQkOY9STqzyHt4HHEQhxbP5+gqGrt158TmQkVdD53NHdx52P7+DwsZMkEpJpMZvW7A6B/mcTgXnTJnLdhS15haH/3rlCZv3CafHsybGEwkgd9t7cfJnoYTklJjhqBxMcxqjG2yBz9XKIay+PY/MHMiafaxY0h5qA4ty3o7uPG9a+kmkpm0w4SYdepNVImxiFRVLFrSVVbCXfQoiT3BgUzJboV1uY4DBGLXGEQtwM7DCbv2dC6nft7I9u25fZ7B/p6OWuz84LNQHlu2971xE3K9ohnYYbFs1g+qRTQ004hb7lh0VSlbKW1EiJ4yuxRL/axgSHMWoJ0xL8GkHrzKaCHLrXLGjOzN3zzrFMBFQaOHzsZNZmH2yOFNx4o+67ePZkxiUlI4S8Xhh73jnGqid2ko6R4xFFLtNdqZzdIyWuULBEv9rFBIdRVeKW804mhIe37WPQpxFsuGW4EzhX+OcN97VnNtB50yby9M4DOOUOnfpVUyackrXZJ5OS1RypkD7ZrTOdRlF+IQew6omdDLq+jrBEwrgUsjFX663ehMLYRuqhuGxbW5tu27at2sswAsQxRXmCZf/RE0NRTjib/d/+8dxhNvswQfSNx3fw4JaezJikz1nt8Z2rLwDgm27L1YakcF3bDOZNm1iSPtmrN3fy3Wf2DLtnKfNPRguW3Dd2EJEOVW0LHjeNw6gacWzw/iilR3w+iGAf7NaZTazf0hNqCjp0LDsPIyg0EkDf8X7AKYAIMJhS1m/p4ZRx8U1K+bSnhoRkNA7x3bPcVHIjL1Vynwmf0Y0JDqPixC3K5ydo/pk3bSJ3P7krk1j3pU+czbqfvZnZmL1yHwA/3fNu5jpOhFOCwcGhoof+SCcvvwDIKvedb/MKmsM8M5p//Xcvm58l2Crhc8jVJ71cm3HYy4B3vNioMcssH32Y4DAqSlRRvjjlLfzlMfyJdWtf6sJvdfXKfTy2vTfj9BbgugtbMkl6waKHHd19IJ7nY3gl3Si86CtwhNZj23uB7A1zxaKWyD4e5cC/kfe7WlQwQqyUBB3y/tLtcYWANXMa/ZjgMCpK1kY24EQu3XHZeQWbghbPnkzSZ/pRdXwX6bRmlft4ZNu+jF9kXEOC+dMmRlZ6HUw5m38C+Pi5U7jjsvOA/D2wg57Cn+49xCMhBf8q7TQO1tEqRIuKQ75qusUIAWvmNPoxwWFUlKbxjSRESKuSBn72+mG2vvWbvG+iYeaLoOknqL2s3tyZ5VO4+LzTM+1aw8w2wQ3LExpx3piXL2jm4a09eNVD3u47kTmXK5S4EgTraIV1+SsGry5VWDXcoHAsVAhYjsfoxwSHUTG8PtuDPue0Eq/8eNib622XnpvT9NPR3TesJeoZE06JNNuEbVj+irH9A2nufX5vqIbUOrOJ6y5syYregqFWtf5Q4h9u28d1ZfY1BNcWVkerWILteCE6uKEYIWDhvKMbExxGxchV0M/zR0Th7+QnIjSNbwyNvAm+CftbooJTUiTKbBPcsIIdBF/uzK0hXbOgOSvyywvpBafXhsdgBXwNYZRqMw624xUYVuokaL4yITC2MMFhVIzgJuy9jd+9bH7OxD3/BrRq6byMaequTTtBJCMcrnVzLrxIq8ybcEp599jJrEJ/hZhtvDfme5/fy8udh/OGDgcT/8JCiaH0voZKEkzM9Jv8LCKqPjDBYVQMv9kirI2rn7ANqO94v+MbcU1NmU57KeXBLT00JBzfid9RrcBzuw/y/O6DJAQ+8+Ez+fLF52RFVvkbNeXKBL/jsvPY+tZvsjSeXM+YS6CseeENfvKrg3iWumQyWmiN1lyGKPOTRUTVByY4jIoS12wRtgEtnj2ZhEA6GMLkkkoryYQgrujwveA75bsVnt19kJ/uPcSGWxazePbkTO5FMikkXA0mVylwv8Zz95O7svpqxHnuj82YxE9+5XT5E+ALrbl9HKP9zT3Xz9EiouoDExzGqCEYbtuQdM0hvjdzzVSYGo5n9uo73k/T+EYngso1i/nxBNH+oycyPpdBnwaT603Zr/F4kVL+t+58GkJwU13u+l3CqPabe7HajkVE1QcmOIxRQVhiYCajz/2/vesIaZ+6kRTH3DPoNkH69IfOyNICvIirYycGuO+lrowG4r0J/+sLb2StQXDy/7zzwc0zaNv3h6KuWjovE+ob1p+jkGZKUN0395FqO+YMH/uUVXCIyJXA94AksE5V7wmcF/f8VcBx4CZV3R41V0SuBe4CPgwsVFWrXjgGCL5hP73zAINpx1+RSmtmsz1lnJPMJgK3fHI2l887K+Psfv5XB3nx9UOZjW7PO8do7zrCkvlTefjWPxrmtJ4y4ZSsNSiQFHGEFoSW6vA2/tf2HeW53QczTu5cJdiLbaZUzTf3ams7MHr9O4ZDolwXFpEksBpYApwP3CAi5weGLQHmuP9WAt+PMXcncA3wYrnWbpSHju4+Vm/udEp7BPDesBOAiDBv6mk0NiRI+jQAz8+QTAgAP3jlLQCmTzqVwVT2Rrd+Sw93Pr6Dl14/zJ2P72DPO8f4ztUX8O2rL8hsRMsXNNOYlKx1qCp9x/tDS3XcuK49s9af7nk3YzBLJhMsmT912Hohd+2mOLTObOK2S8+t+Mbp/SyCz1IpPGH7j8/u4cZ17aG/L0Z1KafGsRDoVNUuABF5CFgG7PaNWQY8oE5J0nYRmSQiU4FZueaq6q/cY2VculFq8rVa3bi9l49Mn0hHz1HSqtz/8ptcMvcMTp9wSlaiXNDP4L2VBs06d/94V9b9n955gBWLWoa9yXrhs2HhublKdQBZGelfaG3OWYeqFp3F1dB2vN8B76+62hqPEU05Bcd0YJ/vcy+wKMaY6THnRiIiK3G0GFpaxl7Pg1ojl/lj/ZYevvmjHVkRUOC85T+7+yDvG5fIJO9BeCJgcKMD2LX/vazrLZk/NafwypVVHZXz4RcG86dNzNSyCjND+TsP1soGWEk/RbBHe0NSSCSEtPs5V+izUT3KKTjCVIJgOEyuMXHmRqKqa4G14DRyKmSuUXrC3rw7uvtY9cTOYULDT7AcSVRYrL9yrj9k9/Lzz2TFopas8iH5Msb9x3IJFS8PJMop7hdU10REUdUzwR7tgynFtUaSUrjrx4WFPhvlp2w+DhwtYYbvczOwP+aYOHONGsLTCr56xdzM5tredWR4U6XAK4NXjsTvHwkzV/nx2+jfNy7BrRefkznekEw4Get5ku+Caw/6Grxjfcf7Q30YHd193Pv83qL9G/WE16PdI5mQrBL59r0bfZRT49gKzBGRs4G3geuBFYExm4DbXR/GIuA9VT0gIodizDVqDG/j9TYBL0qq342S+syHz+SSuWdk8i/85dGDobph2ovfVOWZh+a5ZdQzBEJ8PYLz49r3c2lS/iKAhfT1qEeCpVrmTZvIXZt2ZkxXiUTuTH2jOpRNcKjqoIjcDjyDE1J7v6ruEpFb3fNrgKdwQnE7ccJxb46aCyAiVwP/DJwO/B8R+YWq/nG5nsMoHWE+hjAnbNDJHDQx9R3vH+bT8IfO+mtYPSJDuRbLFzRnQnwHUsrG7b3DQmb98+PkMERV1FWy+3rUs6klX3itZxb0xt31ufls3vMu//7rd9EiMvWN8lLWPA5VfQpHOPiPrfF9rcBtcee6xx8HHi/tSo1KkKs0ei7fgofXwwM0KzTXu6aXAZ5WXFv5kHDIfO1u5F5rWAUe7ejN+C9C58eM6MlVUdff16OeN7y4CYXBccsXNKMBk2Q9fx9HE5Y5blSMYkJT12/pcRzobh2qVUvnhWoJXt+NZEJIA6mUkkxAIjHUj2O5a75av6XHSSxMDQ/nTboax0gaHuUKZy3WHFbrxE0oDI5TCm8CZVQGExxG2YkquRFlwvCirrycibSbnAfZm0wqrVy3cAbTJ51K0/hG7vrxLlIoiUSCuz47vKf5xu29WZtRWDjvSDf1oBYyEnNYrRP3hSGsllepmk8ZpcUEh1FWQmtQAXveOZaz9ag3797n92ZFXQlkNp2wTcbzLwym0hmNou94f1ZuRS5tILjRl3qTGqk5rJaJm1CYr1y7N8aoPiY4jLIRDEntH0hnzE5esk6w9eied47xw6097D7wWwZT2b01Er5YXf8m0zS+kY3bezNFC/3tYsPebqtRhK/U5rBaI+73PEpTqwftrFYwwWGUBe8P/g8DTtlyr/JssN+4d25cQ4JjJwb47jN7cl4z7RY79GsJQFbWMTiZx/52sV5Wd6k2nGIK8JXDHFYJKlFs0LtHWHOvx3ytfutBO6sVTHAYZaG96wgnB4Y6YSjDGzAlhKy2r2tfzC5z7jEuKaTTGvp2Hsw6BscxPm3SqQAlf1sdyRtwuc1hpSbfs5ZCqARzXoShvioAD73ak1VMsh60s1rABIcxYsI2kMWzJ5NMSE4N47Lzz+RjMyZlNoIb7mvPNFXykwCubXMc32EblJd17Nc4kklh/9ETPLa9tyTF8vzPFydCaKyUBI961lKZkLx7eD89xdFKv/mjHY45zz3hFZOs5e/nWMIEhzEiwjYQcDaEL33ibNb97M0s4QFDxci8ft+v7Ts6TGgkEwLqhOAePnYSgUx/jaBT28s67jx4jN/8vp83jxxn/ZYekknJ6+/wniEqsitf1nq+70etbnZR0VCl6tnhL1rp/w1Iq1Pi3iOZkMiOiUZlMcFhjIjgBrJxe2/mTb+xIcHdy+bzw609vNabXa322d0HeXb3QRIyvKKlANdd6JQqe3jbPp7dfTBzLiEM25C9//0+FXCK5V1x/hl81NVs4iSdBTf64PMFs9aD1xwNTZBKRVSUU6nKxfvvcezEAOt+9iZp1aGQ5cGh0jO1+n0ci5jgMEZEMFpo19vvDdtor7uwhZ1vDy+dDs6bZQLnn7fle+G17V1HSAUm5dqQvQ07yJQJp0R23Mu30YdtkH5fRVR72XENCZrGN5bcOV9JckVDxQ2xLfQel887q+YCCOoRExzGiPA2EC8n45e972UV9vPKjqfV6RGOQMq3v3sO8kvmngEwrHFT0H+Rq2Bg0OQh7tx85o18b85hG6Q/CiispHqckutjgXKENddaAEG9YoLDGDFeiXQv8c5f2M+LrlKcgrTXL3SaanlVUHfufy/TLzzMBBWsmhoM1wzLSg8L64xae74356CG4Zm2EiLDyrt7Y/3FDseC2apS1GtZllrDBIdREvxv/ImEsGT+VFpnNrHnnWOZiJk0cPjYSb588TmZjcDL9M61uUa91Yb5J6LMUqXAb9pClURCEMJDhWuxbWw1qeeyLLWGCQ6jaIL2fX9nvrs27cy0b03IUA7Hc7sP8tM972b6ic+bNjHn5prv7bMUjuhCo6CCwmDV0uG1sDxK6QeoB/71hTcywQ0DKcWrG3ByIJ0pgQ9jJ9y5ljHBYRRF2Ibr78zXn1LWb+lhnBsS61U7VYb6iYMTIRVWiDDO22cp3uj9prT+gfzCp1BhUI3yJrXI+i09WdFz/pAIrwT+fJ9p0zSR6mKCwyiKsLd9byPP+DRw3hwvO9/RLh7t6M0IEA8v8spvYhrWdtX39tkf8CWM9I2+aXxjliktTqc5Ewal5+mdByLPDw6m+eaPsiPzzG9UPUxwGEURFnba3nWEmy6axX0vdWX+wBV4Ye8hNtyymOULmtm4vZeHt+1j0B3g1xTWb+kZVuAwIc4/L9I2rXDsxEBWiOtIymD0He/PmNISQqZsu1FZlsyfykuvH858HpcUUiklDZlcH7/Q8Oqbmd+oOpjgMIoiV9hpQiRLo4Chhkletz9PgAhkQm/Xb+nhzsd3ZM3zorNaPjg+03xJIJMkFlaK3W/eurZtRlZobxhj1YFda36AFYucaLundx5gyfypmfbBXoTca/uOZpmyPtI8kVWfnVcTzzYWMcFhFE1Y2KmqIjJUMj0s7yLM1BNmqmgc57RdhaHmS5IjBBayzWeej2Xj9t5IO/hYdGDXatmTFYtaMgIEGKZJ/nTvISfRNCnMnz6xGks0XBLVXoBR23R09/H20RM0JBMZYZFWp7bQ5z82jQumT+RTc07Pe50l86dmfT73jA9k2sR6m/tXr5jL3cvm09iQIBkikDztwSth4pXi3ri9l9WbO+no7gu9d+vMptDe57VKmP+p1mmd2cSGWxZzw6IWEiJseLWHG9e15/yZGuXFNA6jaLKT4cjqzJRKKz9+bb9rl36P5391kP/++Quy3ij9eMc9H0fXod9x95O7mHvWhKykOiBjxghqCMEsdq8Heb1F4YxV85s/0dSSKquLCQ6jaPxNdlSzQyhFsp2ZaYVvPrEzIwj8+O3xV8w7ix1vvxe5MURFNXnnvFpX+4+eYMOrPXW10YxF85vHWBWKtYYJDqMoOrr7eGTbPl+THSHhVjMVcTavbd19Wc2bgh38vOsUUrY8Lp4A6ejuy/hH6mmjGashw2NZKNYSZRUcInIl8D0gCaxT1XsC58U9fxVwHLhJVbdHzRWRDwI/BGYBbwF/oqpm6Kww7V1HMn02BPiTthmZaKlHO3rZ1t2H21IjI1xydfArpGx5odhGM/YYq0Kxliib4BCRJLAauBzoBbaKyCZV3e0btgSY4/5bBHwfWJRn7teBn6jqPSLydffz18rxDOu39LB68+sc/p2XEa2oG+/vmWecpGYpyblSXacS51JpzWgTCmz6j7f58Wv7eV9DIlPePK1w4awm5pw5gcPHTnL6hFOyvr9+x7q/2ZJfWyhFSfK4G02thbCOVdZv6cmE5a5Y1ML6LT38v8/t4bcnBvnAKUkGUmlUYSCtw/4uR9vfSbXXNi6ZYP600/jakg+X9Hda/F22SomIXATcpap/7H7+OwBV/R++Mf8K/FRVN7if9wCX4GgToXO9Map6QESmuvPnRq2lra1Nt23bVtD6w/IKjOK49VOz+cErbw3rEhiVc1HpkNJaDWEdawT/7j7/sWn86Bf7q7iisUEyITz85YsK/p0WkQ5VbQseL2c47nRgn+9zr3sszpiouWeq6gEA9/8zwm4uIitFZJuIbDt06FDBi89XAsGIz7/temdYeKjfRJVKK9MmnZr1S13pkNKxGMJaiwT/7n66t/C/XWM4Kde/WCrKKTgk5FhQvck1Js7cSFR1raq2qWrb6afnzyMIEswrMIrnynlnDcu98KJjwvIxgLznS02l72eEE/y7u+S8wv92jeEkE1LS3+lyOsd7gRm+z81AUOfMNaYxYu5BEZnqM1W9W9JVu3h5BebjyH0uIcLk9zeSTAi/6x8knYbmSacy44PjOXq8n5ODaa670MkG9rcE9TSLKKd1pZ3a5kQfHQRLj6xY1MLCsyebj6OOfBwNwF7gM8DbwFZgharu8o35v4DbcaKqFgH/pKoLo+aKyHeBIz7n+AdV9b9EraUYH4dhGEa9k8vHUTaNQ1UHReR24BmckNr73Y3/Vvf8GuApHKHRiROOe3PUXPfS9wAPi8hfAD3AteV6BsMwDGM4ZdM4RhOmcRiGYRRONaKqDMMwjDGICQ7DMAyjIExwGIZhGAVhgsMwDMMoiLpwjovIIaC7yOlTgMN5R40t7JnrA3vm+mAkzzxTVYdlYdaF4BgJIrItLKpgLGPPXB/YM9cH5XhmM1UZhmEYBWGCwzAMwygIExz5WVvtBVQBe+b6wJ65Pij5M5uPwzAMwygI0zgMwzCMgjDBYRiGYRSECQ4XEblSRPaISKdbrj14XkTkn9zzvxSRBdVYZymJ8cw3us/6SxH5uYh8tBrrLCX5ntk37kIRSYnIFyq5vnIQ55lF5BIR+YWI7BKRFyq9xlIT43d7ooj8WERec5/55mqss1SIyP0i8q6I7MxxvrT7l6rW/T+c0u1vALNxmki9BpwfGHMV8DROd8LFwJZqr7sCz/xHQJP79ZJ6eGbfuH/HKfv/hWqvuwI/50nAbqDF/XxGtdddgWe+E/if7tenA78BGqu99hE886eABcDOHOdLun+ZxuGwEOhU1S5V7QceApYFxiwDHlCHdmCS24GwVsn7zKr6c1Xtcz+243RirGXi/JwB/grYSJm6S1aYOM+8AnhMVXsAVLXWnzvOMyswQUQE+ACO4Bis7DJLh6q+iPMMuSjp/mWCw2E6sM/3udc9VuiYWqLQ5/kLnDeWWibvM4vIdOBqYE0F11VO4vyczwOaROSnItIhIl+s2OrKQ5xn/hfgwzgtqXcAX1HVdGWWVxVKun+Vs+d4LSEhx4JxynHG1BKxn0dELsURHJ8o64rKT5xnvhf4mqqmnJfRmifOMzcArTitmk8FXhGRdlXdW+7FlYk4z/zHwC+ATwPnAM+JyEuq+tsyr61alHT/MsHh0AvM8H1uxnkTKXRMLRHreUTkI8A6YImqHqnQ2spFnGduAx5yhcYU4CoRGVTVH1VkhaUn7u/2YVX9PfB7EXkR+ChQq4IjzjPfDNyjjgOgU0TeBD4EvFqZJVacku5fZqpy2ArMEZGzRaQRuB7YFBizCfiiG52wGHhPVQ9UeqElJO8zi0gL8BjwpzX89ukn7zOr6tmqOktVZwGPAn9Zw0ID4v1uPwF8UkQaRGQ8sAj4VYXXWUriPHMPjoaFiJwJzAW6KrrKylLS/cs0DkBVB0XkduAZnIiM+1V1l4jc6p5fgxNhcxXQCRzHeWOpWWI+8ypgMvC/3TfwQa3hyqIxn3lMEeeZVfVXIvJvwC+BNLBOVUPDOmuBmD/nbwE/EJEdOGacr6lqzZZbF5ENwCXAFBHpBf4bMA7Ks39ZyRHDMAyjIMxUZRiGYRSECQ7DMAyjIExwGIZhGAVhgsMwDMMoCBMchmEYRkGY4DDqDhG5S0T+1v36bhG5LGLs50Xk/Ijzt0aV6BCRWSKyYmQrzlzrEhH5o4jzV4rIqyLya7fS7Q/dXByvOup/FZHXRWSviGwWkXm+uW+JyA63WuyzInJWKdZsjE1McBh1jaquUtXnI4Z8HggVHCLS4OZBPBAxfxZOEcFScAlOxeKwtcwH/hn4M1X9kKp+DHjQvT/Abe7cj6rqecD/ADaJyPt8l7lUVT8KbMOpHmsYoZjgMOoCEfmG25/heZwsYe/4D8TtuSEi94jIbrdfwT+4b/efA77rvsGf4xYC/I44PSu+EtBezhWR59239u0icg5wD05W9i9E5G8Ca7pERF4Ukcfd+64RkYR77kr3Gq+JyE9EZBZwK/A37rU+GXjErwHfUdVMxreqbnKrpnrn/0pVj7vnngV+DtwY8u16ETi3iG+zUSdY5rgx5hGRVpyyE/8J53d+O9ARGPNBnKq4H1JVFZFJqnpURDYBT6rqo+44gEmqerH7+S7fZR7EqX/0uPsmnwC+Dvytqi7NsbyFOBpNN/BvwDWuULoP+JSqvikiH1TV34jIGuB3qvoPIdeZB4QdR0ROA96vqm8ETm1z5wVZilMx1jBCMY3DqAc+CTyuqsfd6qfBukUAvwX+AKwTkWtwyjLk4ofBAyIyAZiuqo8DqOofvLf7PLzq9o1IARtwKhAvBl5U1Tfda0X1WRiGiEx2tZK9njaUayjZFVI3i8gvgNNwTFmGEYoJDqNeiKyto6qDOG//G3H8Gv8WMfz3IceKrcEeXJcyfEOPwy6cDnCo6hHXx7EW+IArLH8vIrMDcxbgdP7zuFRVP6aqX1TVowXe36gjTHAY9cCLwNUicqqrGXw2OEBEPgBMVNWngDuAj7mnjgET8t3A3Zx7ReTz7vVOcSvN5pu/0K3imgCuA34GvAJcLCJnu9f6YIy1/D3wDRH5sO/YeN/X3wX+SUROda95GY52sz7fsxlGEBMcxphHVbfjmJd+gaNRvBQybALwpIj8EngB8BzZDwH/WUT+w3V2R/GnwF+71/g5cBZOxdlB18n9NyFzXsFxoO8E3sQxqR0CVgKPichrDJnGfowjAIc5x1V1B/AV4AE3HPdlnA53nmD4Z5xy4ztEZA/wTWCZqp7I80yGMQyrjmsYVUJELiHacW4YoxLTOAzDMIyCMI3DMAzDKAjTOAzDMIyCMMFhGIZhFIQJDsMwDKMgTHAYhmEYBWGCwzAMwyiI/x+edZkoxYhXmwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# UPDATED VOTES-SEATS CURVE (from votes2seats.ipynb 1/15/22)\n",
    "# LET'S REWORK OUR VOTES - SEATS CALCULATIONS\n",
    "# FIRST, LET'S DO THE BASIC VOTES-TO-SEATS, no fractional seats\n",
    "# INPUTS ARE HDvGOP[nTracts] and HDweight[nTracts]\n",
    "# HDvGOP is the redness lean of each Census tract's Home District\n",
    "# HDweight is the population of this Census tract relative to the state population\n",
    "# stateGOP is the statewide fraction of GOP vote vs. GOP + Dem vote\n",
    "# KEY EQUATION:\n",
    "# expected Seats at a given vote V = sum(HDweight) for tracts with HDvGOP > 0.5 + (V - stateGOP)\n",
    "# for easy calculation, create ~1000 bins, each bin containing HD's in a dV vote window\n",
    "nBins = 1000\n",
    "dV = 1./nBins\n",
    "binWeight = [0.]*nBins\n",
    "\n",
    "for t in range(nTracts):\n",
    "    binNo = int(HDvGOP[t]*nBins)   #which vote bin does this tract's vote go into for the expected statewide vote?\n",
    "    binWeight[binNo] += HDweight[t]\n",
    "    \n",
    "binVote = [0.]*nBins  #this will store the statewide vote for this bin\n",
    "for b in range(nBins) :\n",
    "    binVote[b] = b*dV\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "plt.plot(binVote, binWeight, marker='.',linestyle=\"none\")\n",
    "ax.set(xlabel=\"district pct GOP\", ylabel=\"bin weight\")\n",
    "plt.show()   #this should resemble above histogram"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "85608d3f-c3bd-4d91-9378-16270ceeb9b6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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n87o0aOJjo4mPT29wGN7tXHjRho3bkz16tWpXr06jRs35pdfcg98+Pnnn9O5c2eGDh3KkSNHstb/85//5PHHH89Wtly5cgAcPXqURo0aUakYDTGSXxvBY0B/n+XyOG0ElYHXgfeCGJcJM/4aiId0aRK2zwwkJCQQHR3tqWzt2rXZs2cPderUyVo3b948Vq1aRZkyZcjIyCAiIoIXX3yReLeB+tChQyxY4Ew9Pnz4cN59910GDBjAqFGjsspMmTKFpk2b8uqrr7Jr1y6uu+46vv32W6pUqUJSUhKLFi2idu3apKSksGDBAl577TU2bDjxJPhDDz3EnDlzOPPMM7nyyisBSE5OZuLEiSxatIiyZcvSt29f1qxZwwUXnEj4/fv355133mHo0KH897//ZcCAASQmJrJo0SKWLFlCSkoK7dq1Y/369QwcOJCmTZty6623ejr20qVLGTlyZK7f4ahRo+jatWvW8r59+6hR48S/verVq7N3b/YOk23btmXjxo1UqFCBJ554gmeeeYYnn3yS+Ph4zj33XOrWrZvrPDfeeCPffPMN99xzD5GRkQX+bYtKfomgnKr+5rO82O06uldEKgc5LhNGxs1d57eBOJwnnGnbti3z58/PWs5sI/AnKSmJWrWyzx81btw47rzzTiIiInj00Udp1apVtu1r167lH//4B8eOHWPXrl2cdtppuY67Zs0alixZwmeffQaQ1RYRExPDV199xZEjR+jVqxdfffUVSUlJ1KtXL1si2L9/P40aOdV67dq1A2DTpk1s3bqVbt26AfDnn3+ydevWbB/WN998M9deey133303y5Yt46WXXuLdd9/l0ksvRUSoXr06derUybpryOTl2B06dMhKdPk5/fTTs1XtpKSkcPrpp2crU7XqiaHXbrnllqwEM27cOGbOnJmragicu6HDhw/TpUsX+vXrR8uWLQuMpSjklwiyfRVT1ft8FmsHJxwTbvKafjLcGohP1uTJk7nsssuIiDhRy6uqXHHFFfTq1YvFixczatQo3n///WxlRo8enVXV8thjj6HqzP3mewfRqlUrmjZtyoMPPgjA8ePOcB9du3blgQceoHv37nTt2pVbbrmFSy65JFdsVatWZfv27TRs2JAVK1bQtGlTmjRpQtOmTZk/f37WuTLPnal27drUqlWLp59+mp49eyIiNG/enFdeeQVVJSUlhd27d1OrVi3KlStHWloagKdje70jaNasGVu2bGH//v0AbNmyJVcyTklJoVq1agB8/fXXNG/enAMHDrBz50769+/PkSNHWLt2LaNHj+bxxx8nNTWVcuXKUaFCBSpWrEjFihXz+9MWqfwSwXIR+ZuqvuK7UkTuBr4LblgmXHzw/Xa/009aA3HeXnvtNebPn8+RI0do3bp1rgbetLQ0evToATj10aNGjQKcb8N9+/alX79+9O/fn7vuuovmzZtTrVq1rDuCG264gZ49e9KjRw/uuecehg4dSkxMDABRUVFMmDCBSy65hPXr1zNu3DiaNm3Kzp07s32IZpo4cSK9evWifv36Wd+ea9asybBhw+jatSuRkZGULVuWN998kzPOOCPbvgMGDKB///78+OOPgNMI3bFjRzp06EBGRgYTJ04kIiKCbt26MWzYMD755BPefffdAo/t9Y4gMjKSsWPHZlVpjR07lsjISHbu3MmECROYOHEib7/9NtOmTaNSpUrUqlWLadOmUbVqVRITEwGn99egQYN44oknSE1NpXv37gAcO3aMfv360bhx4wLjKCqSM2NmbRCpA8wGjgHfu6vb4rQVXKuquecNLAJRUVG6cuXKgguaEqHHpIWs25m9Wuj9ezqGbduAMcEiIgmqGuVvW37DUO8GOopIVyCzgvFTVf06CDGaMDRj+bZcScCmnzSm6OVXNQSA+8FvH/4m4PzNNVDip580pgTK94EyY4Jl3Nx1ueYaaFC9gt0NGBMClghMkZuxfBtTrKeQMcWGJQJTpBK2JvPEh7kfHrOeQsaEToFtBMYEyri563hl0eZc3UXBhpIwJpQsEZigGzbzB+Yk/kFGHtvDeSgJY4qDoCYCEbkK+A8QCbyqquNybBd3+9XAYWCgqn6f60CmxEnYmsy4eetI+DU5zwQATpVQOA8lYUxxELREICKRwAtAN2A7sEJE5qjqTz7FegDN3Fd74CX3PeAyP5jW/p7CsfQMVCFCQETIUM1aVijSbaE+fzDiViA9v09/l2BVQsYUB8G8I2gHbFLVzQAiMhPoA/gmgj7Am+o83rxMRKqLSD1V3RHIQBK2JnPTlCWk56iczlDAp8Y6Q0OxLdTnD0bc+SsTARc3qsHwHi2sSsiYYiCYiaAB4Dt66XZyf9v3V6YBkC0RiMhgYDCQNZphYSzbvDdXEjBFr2yEcFenxlYVZEwxE8xEIH7W5fw49lIGVX0ZeBmcsYYKG8ilTWoSKVgyCJFykcKdl1kCMKa4CmYi2A6c6bPcEMg5Ia2XMqes7Vk1eHdIR2sjKMK4ASqWjeTmdo0sARhTzAUzEawAmolIY+B3nNnObs5RZg5wn9t+0B5ICXT7QKa2Z9XgvSEdg3FoY4wp0YKWCFQ1TUTuAz7H6T46TVXXisgQd/sUYC5O19FNON1H7whWPMYYY/wL6nMEqjoX58Ped90Un58VuDeYMRhjjMmfjTVkjDFhzhKBMcaEOUsExhgT5iwRGGNMmMtz8vriSkSSgK0nuXstYE8AwykJ7JrDg11zeDiVaz5LVWv721DiEsGpEJGVqhoV6jiKkl1zeLBrDg/BumarGjLGmDBnicAYY8JcuCWCl0MdQAjYNYcHu+bwEJRrDqs2AmOMMbmF2x2BMcaYHCwRGGNMmCuViUBErhKRDSKySURG+NkuIjLZ3b5aRC4ORZyB5OGab3GvdbWILBGRC0MRZyAVdM0+5S4RkXQRuaEo4wsGL9csItEikigia0Xkm6KOMdA8/NuuJiIfi8gq95pL9CjGIjJNRHaLyI95bA/855eqlqoXzpDXvwBNgHLAKqBljjJXA/NwZki7FFge6riL4Jo7AjXcn3uEwzX7lPsaZxTcG0IddxH8navjzAveyF2uE+q4i+CaHwfGuz/XBvYB5UId+ylccxfgYuDHPLYH/POrNN4RtAM2qepmVT0OzAT65CjTB3hTHcuA6iJSr6gDDaACr1lVl6hqsru4DGc2uJLMy98ZYCjwPrC7KIMLEi/XfDPwgapuA1DVkn7dXq5ZgariTI1XBScRpBVtmIGjqgtxriEvAf/8Ko2JoAHwm8/ydnddYcuUJIW9nrtwvlGUZAVes4g0APoCUygdvPydzwVqiEi8iCSIyIAiiy44vFzz80ALnGlu1wAPqGpG0YQXEgH//ArqxDQhIn7W5ewj66VMSeL5ekQkBicRdApqRMHn5ZonAcNVNT1zHuUSzss1lwHaAn8BKgJLRWSZqv4c7OCCxMs1XwkkAl2Bc4AvRWSRqu4PcmyhEvDPr9KYCLYDZ/osN8T5plDYMiWJp+sRkdbAq0APVd1bRLEFi5drjgJmukmgFnC1iKSp6uwiiTDwvP7b3qOqh4BDIrIQuBAoqYnAyzXfAYxTpwJ9k4hsAc4DviuaEItcwD+/SmPV0AqgmYg0FpFyQH9gTo4yc4ABbuv7pUCKqu4o6kADqMBrFpFGwAfAbSX426GvAq9ZVRur6tmqejbwP+DvJTgJgLd/2x8BnUWkjIhUAtoD64o4zkDycs3bcO6AEJG6QHNgc5FGWbQC/vlV6u4IVDVNRO4DPsfpcTBNVdeKyBB3+xScHiRXA5uAwzjfKEosj9c8CqgJvOh+Q07TEjxyo8drLlW8XLOqrhORz4DVQAbwqqr67YZYEnj8O/8LmC4ia3CqTYaraokdnlpE3gGigVoish2IBcpC8D6/bIgJY4wJc6WxasgYY0whWCIwxpgwZ4nAGGPCnCUCY4wJc5YIjDEmzFkiMPkSkWFuf/SAlPNwnH+KyBV+1keLyCenevx8zttGRK4O0rGni8gWd0TQ9SIS67PtVRFpGYzz5ojhPne0ShWRWj7r8xzJMq9RP0XkdBH5UkQ2uu818jhnKxH5WkR+dss+6Y4HhIgMFJHnc5SPF5ES26W5JLNEYAoyDPDyAe+1XL5UdZSqzj/V45yENjh9s4PlUVVt457ndhFpDKCqg1T1pyCeN9O3wBXA1hzrewDN3Ndg4CUAEYkEXnC3twT+6pOwRgBfqWoz4Ct3ORsRqYjz4NM4VT0X5+nmjsDfA3tZJhAsERgARKSyiHwqzpjuP4pIPxG5H6gPLBCRBW65l0RkpTjjvse56/yV6y4iS0XkexF5T0SqiEg7EfnA3d5HRI6ISDkRqSAim93108WdN8D9RrpeRBYD1+WIdZqIrBCRH0Qk16ijIjLL9xu+e9zr3XO9LiJr3H1j3CdW/wn0c7+19/NyjhznO1tE1onIK+7v5gv3wzCnCu77IXe/rG/BInJQREa7f4Nl4jwli4jc6P5NVokzZEShqeoPqvqrn015jWSZ36iffYA33J/fAK71c9ybgW9V9Qv3/IeB+/CTNEzoWSIwma4C/lDVC1X1fOAzVZ2MM4ZJjKrGuOWecJ9Ibg1cLiKtc5Zzqx7+AVyhqhcDK4GHgO+Bi9zjdAZ+BC7BGQZhuW8wIlIBeAXo5ZY9w2fzE8DXqnoJEANMEJHKOa5nJtDPPVY5nCEI5gL3AqjqBcBfcT7IInCevJ6lqm1UdZbHc+TUDHhBVVsBfwLX+2ybICKJOOPEzMxjeOjKwDJVvRBYCPzNXT8KuNJd3zvnTiJS1U1g/l4FVTvlNZJlfiNc1s0c0sB9r+PnuK2ABN8VqvoLUEVETnNX9fONFWdsKBMClghMpjXAFSIyXkQ6q2pKHuVuEpHvgR9w/rP7+6C51F3/rfsf/HbgLFVNwxkUrAXON85ncSbh6AwsynGM84AtqrrRHUzsLZ9t3YER7rHjcb5lN8qx/zygq4iUx6neWKiqR3BGXf0vgKqux6kqOdfPNXg5R05bVDXR/TkBONtnW2bV0BnAX0Sko5/9jwOZ7SC++3+LM4TC33CGWchGVQ+4Cczfq6Bqp7xGsjzVES4ln/KZ62f5xorzhcGEQKkba8icHFX9WUTa4tSTjxWRL1T1n75l3HrtR4BLVDVZRKZzoqojW1HgS1X9q59ti3A+mFOB+cB0nA+3R/yFlUe4AlyvqhvyuZ6jIhKPM0RxP+Adn329KPAcfhzz+TkdZxjonHEddOPqBCzJsTlVT4z5ko77/1NVh4hIe6AnkCgibXxHjxWRquROpJluLiAZ5DWSZbk81gPsEpF6qrrDrUbyd3ezFifJZxGRJsBBVT0gpWNY8FLD7ggMACJSHzisqm8Bz+BMlQdwAKjq/nwaTt12ilt/3cPnEL7llgGXiUhT99iVRCTzW/dCnIblpaqahDMQ3nk4Hxy+1gONReQcd9k3qXwODBXJ6oFyEf7NxBmQq7O7T+b5b3H3OxfnW/6GHPHneQ4RaSAiX+VxvgKJSBmcqrBfCrHPOaq6XFVHAXvI/gF9qncEeY1kmd+on3Nw7vJw3z9y4/T93bwNdBK3B5jbXjIZeNrrdZuiY4nAZLoA+M6tCnkCeMpd/zIwT0QWqOoqnCqhtcA0nCoL/JRLAgYC74jIapzEcJ5bbjlQF+cDGZxRMlf7fBMGnG/0OL1YPnUbi317u/wLZzTG1eJM8P2vPK7pC5xvpfPdBk+AF4FIcUaqnAUMVNVjwAKgZWZjcT7nqMfJTYOY2UawGqca7oNC7rvGjWMhzry9hSIi94szkmVDnGt61d00F2fI5k04bTJ/B2fUT5zG3c9xhrF+V1Uzk/U4oJuIbAS6ucvg87txq+H6AP8QkQ3uNa/AmU3MFDM2+qgxhSDOkMjbVDXnmPhhz343JZclAmOMCXNWNWSMMWHOEoExxoQ5SwTGGBPmLBEYY0yYs0RgjDFhzhKBMcaEuf8HfyEwqpkWRGsAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#continuing with votes-to-seats, let's compute the S(V) curve with no fractional-seat smearing\n",
    "cumVote = [0.]*nBins\n",
    "for b in range(nBins) :\n",
    "    cumVote[nBins-b-1] = np.sum(binWeight[:(b+1)])  #cumulative weight of all Home Districts below vote b*dV\n",
    "    # print(\"bin, bin vote, cumVote for this bin\",b,b*dV,cumVote[b] )\n",
    "    \n",
    "cumSeats = [0.]*nBins  #this will sum the seats earned for a given statewide vote\n",
    "stateVoteBin = int( (stateGOP+0.5*dV)*nBins )   #which bin (out of 1/dV) holds the statewide total vote?\n",
    "for b in range(nBins) :\n",
    "    bb = int( max(0,min(nBins-1,nBins/2 + b-stateVoteBin)) )\n",
    "    cumSeats[b] = 1. - cumVote[bb]\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "plt.plot(binVote, cumSeats, marker='.',linestyle=\"none\")\n",
    "ax.set(xlabel=\"statewide vote, nBins =\"+str(nBins)+\",\"+str(STATE), ylabel=\"GOP seats won (no fractl smearing)\")\n",
    "RANGE = [0.1, 0.9]\n",
    "fifty50 = [0.5, 0.5]\n",
    "expected = [stateGOP, stateGOP]\n",
    "plt.plot(RANGE,fifty50)\n",
    "plt.plot(fifty50,RANGE)\n",
    "plt.plot(expected,RANGE, linestyle=\"--\",color='red')\n",
    "\n",
    "#LET'S ALSO crudely ESTIMATE RESPONSIVENESS near the STATEWIDE VOTE, with a pseudonormal weighting and lst-sq fit\n",
    "stateSigma = 0.03  #User-adjustable, this is the uncertainty in the statewide vote from election to election\n",
    "usedBins = int(stateSigma/dV)\n",
    "nFitPoints = 6*usedBins\n",
    "voteData = [0.]*nFitPoints\n",
    "seatData = [0.]*nFitPoints\n",
    "counter = 0\n",
    "for b in range(nBins):\n",
    "    if ( abs(b-stateVoteBin) <= 2*usedBins ):  #include this S-V pair in our line fit\n",
    "        voteData[counter]=binVote[b]\n",
    "        seatData[counter]=cumSeats[b]\n",
    "        counter += 1\n",
    "        # print(b,counter)\n",
    "        if ( abs(b-stateVoteBin) < usedBins) : #double count this in data set\n",
    "            voteData[counter]=binVote[b]\n",
    "            seatData[counter]=cumSeats[b]\n",
    "            counter +=1\n",
    "fit = np.polyfit(voteData,seatData,1)  #first-order linear regression with old polyfit\n",
    "Rsimple = fit[0]     #slope is fit[0] in y = mx + b, intercept is fit[1]\n",
    "y0 = fit[1]\n",
    "Rx = [stateGOP - 4.*stateSigma, stateGOP + 4.*stateSigma]\n",
    "Ry = [y0 + Rx[0]*Rsimple, y0 + Rx[1]*Rsimple]\n",
    "plt.plot(Rx,Ry ) \n",
    "ax.text(Rx[1]+0.02, Ry[1]+0.02, \"R = \"+str(round(Rsimple,4)), transform=ax.transAxes, fontsize=14,color='purple')\n",
    "expectedSeats = cumSeats[stateVoteBin]\n",
    "ax.text(0.02,expectedSeats+0.03,\"expected seats = \"+str(round(expectedSeats,3)),transform=ax.transAxes,fontsize=9)\n",
    "ax.text(stateGOP+0.01,0.1,\"HD statewide vote = \"+str(round(stateGOP2,3)),transform=ax.transAxes,fontsize=9)\n",
    "Ex = [0,stateGOP ]\n",
    "Ey = [expectedSeats, expectedSeats]\n",
    "plt.plot(Ex,Ey, linestyle='-.',color='red')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "id": "ce47266f-e2ea-4649-b10c-e8225994c122",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Kz766COKioq8H+eMM3j22WejbV6/+uortm7dSmFhIa+//jplZWVUVlbyzDPP1Or5GjKqcSiKklkGXWL9/eodlnmqbTdLaNjHa8j777/PL37xCwKBANnZ2TzyyCN873vfSzrv7LPP5sMPP+Tkk08GLMf3E088wTnnnMP06dMZNGgQ/fr1Y+jQoZ7zjzvuOO68807OPvtswuEw2dnZTJs2jaFDhzJ16lROPvlkOnfuzODBg5tsBFbGyqo3JLSsuqKkFy2r3vRoKGXVFUVRlCaICg5FaeQUby1n2pKNFG8tr++lKM0E9XEoSiOmeGs5E2cWUVEVJicrkLZ+3oqSCNU4FKURU7SpjIqqMGEDlVVhijaV1feSlGaACg5FaUCkanYa2rsDOVkBggLZWQGG9u6QsXspio2aqhSlgVATs1N+j1xmXz2Uok1lDO3dwbeZSk1cSm1QjUNRGghOs1NFZZj7F3/sSxvI75HLDSOP8dz4vbSK4q3l3L/44yZp4rr//vvZt29f2sYlY8qUKSxevLja8ddff50xY8akdK1//vOf9OnThz59+vDPf/7Tc8xjjz3GkUceyQknnMAJJ5zAzJkzY85//fXXdO3aNaac+0MPPcQxxxyDiLBz586U1hQP1TgUpYFgm50qKsOEgWUbd7Jyy1c11ga8tAqAiTOLOFgZxgCBGpi4GjL3338/l19+Oa1atUrLuGTccUftCjXafPXVV/zud79j1apViAj5+fmcf/755OZW/71feumlPPTQQ57Xuf322znttNNijg0bNowxY8YwYsSItKwVVONQlAaDbXYa1qcjAaHW2oCX49w+ZrD+8w87pmOjNFN5lVR/4IEH2LZtGyNHjmTkyJEA/PjHP6agoIABAwZEy6d7jVu0aBEnn3wygwcP5uKLL+abb75hxYoVjBs3DoAXX3yRli1bUlFRwYEDB+jduzdAtPouWNV6+/fvzymnnMJzzz0Xs9ZJkyZx0kknceKJJ/Liiy9We57//ve/nHXWWbRv357c3FzOOussXn755ZR+JsXFxezYsSNas8vmxBNPpGfPnildKxmqcShKAyK/Ry43ntmXlVu+orIqXCttwNZg3NdxHrvxzL61Fhp/WvEnPvrqo1pdw03/9v25Zcgtcc/bJdX/85//ALB7927atm3Lvffey5IlS+jYsSMAd911F+3btycUCnHGGWew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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#3/6/22 - alternate votes-to-seats with fractional seat smearing.\n",
    "# First, compute the general cdf sliver for -3 sigma to +3 sigma\n",
    "# Then, apply this smearing to the binVote weights\n",
    "seatVar = 0.04\n",
    "nBins = 1000\n",
    "nSigma = 6.  #how many total sigma of deviation we are explicitly modeling; the rest go into the tails\n",
    "nSlivers = 2*int(3*nBins*seatVar)  #budget for 3 sigma on either side of the expected vote\n",
    "sliverWt = [0.]*nSlivers  #each sliver holds the cdf reflecting the relative distance from the mean vote\n",
    "sliverSigma = [0.]*nSlivers\n",
    "totalSliverWt = 0.\n",
    "for nS in range(nSlivers):\n",
    "    dSigmaHigh = nSigma* (nS+0.5 - nSlivers/2) / float(nSlivers)\n",
    "    dSigmaLow =  nSigma* (nS-0.5 - nSlivers/2) / float(nSlivers)\n",
    "    sliverSigma[nS] = 0.5*(dSigmaHigh+dSigmaLow)  #for plotting; keeps track of this sliver's center sigma\n",
    "    sliverWt[nS] = norm.cdf(dSigmaHigh) - norm.cdf(dSigmaLow)\n",
    "    totalSliverWt += sliverWt[nS]\n",
    "lowSliverWt = 0.5 * (1. - totalSliverWt)\n",
    "highSliverWt = lowSliverWt\n",
    "#print(\"each tail of distribution has weight\",round(lowSliverWt,4) )\n",
    "#plt.plot(sliverSigma,sliverWt)\n",
    "#plt.show()\n",
    "# OK, that worked as expected.  Now, do the smearing of each bin\n",
    "smearedBinWeight = [0.]*nBins\n",
    "for b in range(nBins):\n",
    "    centerBinNo = b #int(HDvGOP[t]*nBins)   #which vote bin does this tract's vote go into for the expected statewide vote?\n",
    "    binOffset = int(nSlivers/2)\n",
    "    for nS in range(nSlivers):\n",
    "        binNo = centerBinNo + nS - binOffset\n",
    "        if (binNo < 0): #deep blue district; variance would push vote %R < 0\n",
    "            binNo = 0\n",
    "        if (binNo >= nBins):  #deep red district; variance would push vote %R > 1\n",
    "            binNo = nBins - 1\n",
    "        smearedBinWeight[binNo] += binWeight[b]*sliverWt[nS]\n",
    "    # Now put the tails into the correct bins\n",
    "    binNo = centerBinNo -1 - binOffset  #left tail\n",
    "    if binNo < 0:\n",
    "        binNo = 0\n",
    "    smearedBinWeight[binNo] += binWeight[b]*lowSliverWt\n",
    "    binNo = centerBinNo + nSlivers - binOffset  #right tail\n",
    "    if binNo >= nBins:\n",
    "        binNo = nBins -1 \n",
    "    smearedBinWeight[binNo] += binWeight[b]*highSliverWt\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "plt.plot(binVote, binWeight, marker='.',linestyle=\"none\",label=\"unsmeared\")\n",
    "plt.plot(binVote, smearedBinWeight, marker='o',linestyle=\"none\",label=\"smeared\")\n",
    "RANGE = [0.0, 0.5*np.max(binWeight)]\n",
    "sGOP = [stateGOP, stateGOP]\n",
    "plt.plot(sGOP,RANGE,linestyle=\"-\",label=\"statewide \"+str(round(stateGOP,3)) )\n",
    "ax.set(xlabel=\"district pct GOP\", ylabel=\"bin weight\")\n",
    "plt.legend()\n",
    "plt.show()   #this should resemble above histogram"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "8a2d7de3-ea93-4447-bb69-36defbae38df",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEGCAYAAABo25JHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAAA/nklEQVR4nO3deXhTZfbA8e9pStkGAS2yFQRkR7Cy+8MFBhFEFkVZFHUAlQF0FEcFF0RUFNx1RGVwAXcUwYqIC6K4sQkWqKgsytbqKKDIJkLT8/vjJiFJ0zalSdM25/M8eZrce3Pz3lJy7rudV1QVY4wx8Ssh1gUwxhgTWxYIjDEmzlkgMMaYOGeBwBhj4pwFAmOMiXOJsS5AYSUnJ2uDBg1iXQxjjClVVq9evUtVa4TaV+oCQYMGDVi1alWsi2GMMaWKiGzLa581DRljTJyzQGCMMXHOAoExxsS5UtdHEMqRI0fIzMzk0KFDsS6KKaQKFSqQkpJCuXLlYl0UY+JWmQgEmZmZVKlShQYNGiAisS6OCZOqsnv3bjIzM2nYsGGsi2NM3IpaIBCR54E+wK+qekqI/QI8DvQGDgLDVPXrY/msQ4cOWRAohUSEE044gZ07d8a6KKaMSkvP4uY5aziSE+uSRE5igvDQwFO54LS6kTtnxM6U2yxgGvBiHvvPA5p4Hp2Apz0/j4kFgdLJ/t1MoexYyc63bqHSrnUkkU0OCeQgJKAkkEOOp9vT+7wnwnmJoffl975I7YvkZwBs0hQmZg/nhtedrNGRCgZRCwSq+pmINMjnkP7Ai+rkwV4uItVEpLaq/hytMhljSolVs+CT+8g+sAu3527ehRuXQDKA7/7BHfRGdx7PY70vMudpJdt4I+luBh2eyIMfVIxYIIjlqKG6wA6/15mebbmIyEgRWSUiq0pqM8L7779Ps2bNaNy4MVOnTg15jKpy3XXX0bhxY9q0acPXXwe2hLndbk477TT69OlTHEU2pmRZdCdMqc+RSdXRd65H9/+CS90kifNweb78ReL74SKHzgnf8dOePyP2q49lZ3GoNoGQq+So6gxgBkD79u2LvJJOWnoWD36wgZ/2/EmdahW5uWezIkVWt9vNNddcw6JFi0hJSaFDhw7069ePli1bBhz33nvvsWnTJjZt2sSKFSsYPXo0K1as8O1//PHHadGiBXv37j3mskRDdnY2iYllYlyBKYlWzWLvgluoos4Xm/cvLb9Ww3heT8tNAstzWlCnWsWInTOWNYJMoJ7f6xTgp2h/aFp6FrfOyyBrz58okLXnT26dl0FaetYxn3PlypU0btyYRo0akZSUxJAhQ3j77bdzHff2229zxRVXICJ07tyZPXv28PPPTktYZmYm7777LldddVWenzNnzhxOOeUUTj31VM466ywAZs2axQUXXEDfvn1p2LAh06ZN45FHHuG0006jc+fO/PbbbwD88MMP9OrVi3bt2nHmmWfy/fffA/DOO+/QqVMnTjvtNM455xx++eUXACZNmsTIkSM599xzueKKK475d2NMXu6c9hyZExqi71zvCwL+d77gfOGHegC4FQ6ri0OayGF1ka3CYXUFPI/1vkh+xmF1sT7nJAYdnki6NuXmns0i9m8Ry9u8+cC1IjIbp5P4j+LoH3jwgw38eSSwDe7PI24e/GDDMdcKsrKyqFfvaExLSUkJuNPP77isrCxq167N2LFjeeCBB9i3b1+en3P33XfzwQcfULduXfbs2ePb/s0335Cens6hQ4do3Lgx999/P+np6dxwww28+OKLjB07lpEjRzJ9+nSaNGnCihUrGDNmDB9//DFnnHEGy5cvR0R49tlneeCBB3j44YcBWL16NV988QUVK0buzsPEN+8onhvkVe5MXIC4nO3+d//+d/sKZGsCipBADtm42El1nsrux+yc7sVa9pIiMUF4dFApGTUkIq8BXYFkEckE7gTKAajqdGAhztDRzTjDR4dHqyz+8mpXK0p7W6h1n0ONhsnruAULFnDiiSfSrl07lixZkufndOnShWHDhjFo0CAGDBjg296tWzeqVKlClSpVqFq1Kn379gWgdevWrFu3jv3797N06VIGDhzoe89ff/0FODWRwYMH8/PPP3P48OGA8fz9+vWzIGAiIi09ixffeIO7XTP5NnE7ieL8XwgVABT4U5PI0EY8kD2Er7VpxMrR5eTjeeXq0yN2vrIimqOGLilgvwLXROvz81KnWkWyQnzpF6W9LSUlhR07jvZ7Z2ZmUqdOnbCPe/PNN5k/fz4LFy7k0KFD7N27l8suu4yXX3454P3Tp09nxYoVvPvuu6SmprJmzRoAypcv7zsmISHB9zohIYHs7GxycnKoVq2a73h///rXv/j3v/9Nv379WLJkCZMmTfLtq1y58rH8OozxmZCW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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#continuing with votes-to-seats, let's compute the S(V) curve with no fractional-seat smearing\n",
    "smearedBinVote = [0.]*nBins  #this will store the statewide vote for this bin\n",
    "cumSmearedVote = [0.]*nBins\n",
    "for b in range(nBins) :\n",
    "    smearedBinVote[b] = b*dV\n",
    "    cumSmearedVote[nBins-b-1] = np.sum(smearedBinWeight[:(b+1)])  #cumulative weight of all Home Districts below vote b*dV\n",
    "    # print(\"bin, bin vote, cumVote for this bin\",b,b*dV,cumVote[b] )\n",
    "    \n",
    "cumSmearedSeats = [0.]*nBins  #this will sum the seats earned for a given statewide vote\n",
    "stateVoteBin = int( (stateGOP+0.5*dV)*nBins )   #which bin (out of 1/dV) holds the statewide total vote?\n",
    "for b in range(nBins) :\n",
    "    bb = int( max(0,min(nBins-1,nBins/2 + b-stateVoteBin)) )\n",
    "    cumSmearedSeats[b] = 1. - cumSmearedVote[bb]\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "plt.plot(smearedBinVote,cumSmearedSeats, marker='o',linestyle=\"none\",label=str(seatVar)+\" smear\")\n",
    "plt.plot(binVote, cumSeats, marker='.',linestyle=\"none\",label=\"no smear\")\n",
    "ax.set(xlabel=\"statewide vote, nBins =\"+str(nBins)+\", state=\"+str(STATE), ylabel=\"GOP seats won\")\n",
    "RANGE = [0.1, 0.9]\n",
    "fifty50 = [0.5, 0.5]\n",
    "expected = [stateGOP, stateGOP]\n",
    "expectedSeats = cumSeats[stateVoteBin]\n",
    "expectedS = [expectedSeats,expectedSeats]\n",
    "smearedSeats = cumSmearedSeats[stateVoteBin]\n",
    "smearedS = [smearedSeats,smearedSeats]\n",
    "plt.plot(RANGE,fifty50)\n",
    "plt.plot(fifty50,RANGE)\n",
    "plt.plot(RANGE,smearedS, linestyle=\"--\",color='blue',label=str(round(expectedSeats,3))+\"no smear\")\n",
    "plt.plot(RANGE,expectedS, linestyle=\"--\",color='orange',label=str(round(smearedSeats,3))+\"smeared\")\n",
    "plt.plot(expected,RANGE, linestyle=\"--\",color='red')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "597b7758-4f83-40f7-8909-4946e64267ad",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "simpler and fractional-seat-smeared (var of 0.04 ) responsiveness are 2.662 2.579\n",
      "fractional expected GOP seats =  9.972  out of  15 seats\n",
      "simpler expected GOP seats =  10.3292  out of  15 seats\n"
     ]
    }
   ],
   "source": [
    "#Finally, let's compare responsiveness using smeared (fractional seat variance) to non-smeared calculated above\n",
    "#LET'S ALSO crudely ESTIMATE (smeared) RESPONSIVENESS near the STATEWIDE VOTE, as we did for non-smeared\n",
    "stateSigma = 0.03  #User-adjustable, this is the uncertainty in the statewide vote from election to election\n",
    "usedBins = int(stateSigma/dV)\n",
    "nFitPoints = 6*usedBins\n",
    "voteData = [0.]*nFitPoints\n",
    "seatData = [0.]*nFitPoints\n",
    "counter = 0\n",
    "for b in range(nBins):\n",
    "    if ( abs(b-stateVoteBin) <= 2*usedBins ):  #include this S-V pair in our line fit\n",
    "        voteData[counter]=smearedBinVote[b]\n",
    "        seatData[counter]=cumSmearedSeats[b]\n",
    "        counter += 1\n",
    "        # print(b,counter)\n",
    "        if ( abs(b-stateVoteBin) < usedBins) : #double count this in data set\n",
    "            voteData[counter]=smearedBinVote[b]\n",
    "            seatData[counter]=cumSmearedSeats[b]\n",
    "            counter +=1\n",
    "fit = np.polyfit(voteData,seatData,1)  #first-order linear regression with old polyfit\n",
    "Rsmeared = fit[0]     #slope is fit[0] in y = mx + b, intercept is fit[1]\n",
    "y0 = fit[1]\n",
    "\n",
    "print(\"simpler and fractional-seat-smeared (var of\",seatVar,\") responsiveness are\",round(Rsimple,3) ,round(Rsmeared,3) )   \n",
    "print(\"fractional expected GOP seats = \",round(nDistricts*smearedSeats,3),\" out of \",nDistricts,\"seats\")\n",
    "print(\"simpler expected GOP seats = \",round(nDistricts*expectedSeats,4),\" out of \",nDistricts,\"seats\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "86f82727-7193-4194-aa61-2b99408dbcb6",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
